728x90
반응형
1. intro
2. code 및 분석
2.1. code
int __cdecl main(int argc, const char **argv, const char **envp)
{
char v4[256]; // [rsp+20h] [rbp-118h] BYREF
memset(v4, 0, sizeof(v4));
printf("Input : ", argv, envp);
scanf("%256s", v4);
if ( compare(v4) )
puts("Correct");
else
puts("Wrong");
return 0;
}
_BOOL8 __fastcall sub_140001000(_BYTE *a1)
{
if ( *a1 != 'C' )
return 0i64;
if ( a1[1] != 'o' )
return 0i64;
if ( a1[2] != 'm' )
return 0i64;
if ( a1[3] != 'p' )
return 0i64;
if ( a1[4] != 'a' )
return 0i64;
if ( a1[5] != 'r' )
return 0i64;
if ( a1[6] != '3' )
return 0i64;
if ( a1[7] != '_' )
return 0i64;
if ( a1[8] != 't' )
return 0i64;
if ( a1[9] != 'h' )
return 0i64;
if ( a1[10] != 'e' )
return 0i64;
if ( a1[11] != '_' )
return 0i64;
if ( a1[12] != 'c' )
return 0i64;
if ( a1[13] != 'h' )
return 0i64;
if ( a1[14] != '4' )
return 0i64;
if ( a1[15] != 'r' )
return 0i64;
if ( a1[16] != 'a' )
return 0i64;
if ( a1[17] != 'c' )
return 0i64;
if ( a1[18] != 't' )
return 0i64;
if ( a1[19] != '3' )
return 0i64;
if ( a1[20] == 'r' )
return a1[21] == 0;
return 0i64;
}
2.2. 분석
완벽하게 강의와 똑같은 문제라 굳이 써야하나 싶긴 하지만... 일단 쓴다;;
code와 같이 적절히 함수 이름을 변경해두었다.
결국은 compare 함수와 비교하기 때문에 이 부분만 보면 된다.
3. exploit
비교하는 각 문자를 모으면 끝.
_BOOL8 __fastcall sub_140001000(_BYTE *a1)
{
if ( *a1 != 'C' )
return 0i64;
if ( a1[1] != 'o' )
return 0i64;
if ( a1[2] != 'm' )
return 0i64;
if ( a1[3] != 'p' )
return 0i64;
if ( a1[4] != 'a' )
return 0i64;
if ( a1[5] != 'r' )
return 0i64;
if ( a1[6] != '3' )
return 0i64;
if ( a1[7] != '_' )
return 0i64;
if ( a1[8] != 't' )
return 0i64;
if ( a1[9] != 'h' )
return 0i64;
if ( a1[10] != 'e' )
return 0i64;
if ( a1[11] != '_' )
return 0i64;
if ( a1[12] != 'c' )
return 0i64;
if ( a1[13] != 'h' )
return 0i64;
if ( a1[14] != '4' )
return 0i64;
if ( a1[15] != 'r' )
return 0i64;
if ( a1[16] != 'a' )
return 0i64;
if ( a1[17] != 'c' )
return 0i64;
if ( a1[18] != 't' )
return 0i64;
if ( a1[19] != '3' )
return 0i64;
if ( a1[20] == 'r' )
return a1[21] == 0;
return 0i64;
}
728x90
반응형
'Wargame > Dreamhack' 카테고리의 다른 글
Holymoly (0) | 2023.01.12 |
---|---|
rev-basic-0 (0) | 2023.01.06 |
ZeroShot (0) | 2023.01.04 |
Broken Tetris (0) | 2022.12.26 |
MSNW (0) | 2022.12.26 |