728x90
1. 문제
14번 문제와 동일하다. CodeEngn일때의 키젠값을 구하면 된다
델파이로 만들어진 바이너리이다
2. 접근방법
int __fastcall TForm1_Button1Click(int a1)
{
int v2; // edx
unsigned int v4[2]; // [esp-10h] [ebp-14h] BYREF
int *v5; // [esp-8h] [ebp-Ch]
int v6; // [esp+0h] [ebp-4h] BYREF
int savedregs; // [esp+4h] [ebp+0h] BYREF
v6 = 0;
v5 = &savedregs;
v4[1] = (unsigned int)&loc_458874;
v4[0] = (unsigned int)NtCurrentTeb()->NtTib.ExceptionList;
__writefsdword(0, (unsigned int)v4);
sub_458760(v4[0], &loc_458874, &savedregs);
TControl::GetText(*(TControl **)(a1 + 720));
if ( change_hex(v6) == keygen )
{
Dialogs::ShowMessage((Dialogs *)&str_You_cracked_the[1], v2);
Controls::TControl::SetText(dword_45B83C, (const int)&str_CRACKED[1]);
}
else
{
Dialogs::ShowMessage((Dialogs *)&str_Try_Again__[1], v2);
}
__writefsdword(0, v4[0]);
v5 = (int *)&loc_45887B;
return System::__linkproc__ LStrClr(&v6);
}
저 조건문을 만족하면 성공이다. keygen이 생성되는 부분을 사실 안봐도 되지만 함 봐보자. xref로 어디서 저 키젠이 되는지 확인해보면
int sub_458760()
{
int v0; // eax
unsigned int v2[2]; // [esp-18h] [ebp-1Ch] BYREF
int *v3; // [esp-10h] [ebp-14h]
int v4; // [esp+0h] [ebp-4h] BYREF
int savedregs; // [esp+4h] [ebp+0h] BYREF
v4 = 0;
v3 = &savedregs;
v2[1] = (unsigned int)&loc_4587F3;
v2[0] = (unsigned int)NtCurrentTeb()->NtTib.ExceptionList;
__writefsdword(0, (unsigned int)v2);
TControl::GetText(*((TControl **)dword_45B83C + 179));
System::__linkproc__ LStrAsg(&dword_45B840, v4);
keygen = 0;
v0 = unknown_libname_32(dword_45B840);
if ( v0 > 0 )
{
unk_45B848 = 1;
do
{
keygen += 8 * *(unsigned __int8 *)(dword_45B840 + unk_45B848++ - 1);
--v0;
}
while ( v0 );
}
keygen += 8 * unknown_libname_32(dword_45B840);
keygen *= 4;
__writefsdword(0, v2[0]);
v3 = (int *)&loc_4587FA;
return System::__linkproc__ LStrClr(&v4);
}
요기서 입력한 Name을 가지고 키젠이 된다. 사실 몰라도 된다. 조건문에서 나온 값을 확인해면 이번 문제도 끝
3. 풀이
4. 몰랐던 개념
728x90
'워게임 > CodeEngn' 카테고리의 다른 글
[CodeEngine] Basic RCE L16 (0) | 2021.01.04 |
---|---|
[CodeEngine] Basic RCE L14 (0) | 2021.01.02 |
[CodeEngine] Basic RCE L09 (0) | 2020.12.29 |
[CodeEngn] Basic RCE L06 (0) | 2020.12.28 |
[CodeEngn] Basic RCE L07 (0) | 2020.12.28 |
Uploaded by Notion2Tistory v1.1.0