본문 바로가기

Reversing24

[Reversing.kr] (Reversing) Easy Keygen 풀이 다운받고 압축을 풀면, Serial = 5B134977135E7D13 인 Name 을 찾으라한다. Name 과 Serial 을 입력받는걸 볼 수 있다. 32bit EXE 파일이므로, 올리디버거로 연다음, 문자열검색으로 입력받는곳으로 가보자. 0040102E |. 68 60804000 PUSH OFFSET 00408060 ; ASCII "Input Name: " 00401033 |. F3:AB REP STOS DWORD PTR ES:[EDI] 00401035 |. 66:AB STOS WORD PTR ES:[EDI] 00401037 |. AA STOS BYTE PTR ES:[EDI] 00401038 |. C64424 10 10 MOV BYTE PTR SS:[ESP+10],10 0040103D |. C6442.. 2020. 3. 18.
[Reversing.kr] (Reversing) Easy Crack 풀이 문제를 눌러 Easy_CrackMe.exe 파일을 다운받자. 일단 die ( Detect It Easy ) 로 열어보면, 32bit 파일임을 알 수 있다. 비밀번호를 입력하는칸과, 확인 버튼이 있는걸 알 수 있다. ollydbg 로 문자열을 찾아 클릭한 후, 함수에 BP를 걸어 실행시켜보자. 확인을 눌렀을때, 우리가 입력한 값을 검사하는 함수가 실행된다. [ 분석 ] 00401094 |. 6A 64 PUSH 64 ; /MaxCount = 100. 00401096 |. F3:AB REP STOS DWORD PTR ES:[EDI] ; | 00401098 |. 66:AB STOS WORD PTR ES:[EDI] ; | 0040109A |. AA STOS BYTE PTR ES:[EDI] ; | 0040109B .. 2020. 3. 18.
[HackCTF] (Reversing) Static 풀이 문제를 다운받고 실행하면 Nope 이 나온다. ELF64 파일인데, 아이다로 열어보면 사용되는함수밖에 나오지 않는다. int __cdecl __libc_start_main( int (__cdecl *main)(int, char **, char **), int argc, char **ubp_av, void (*init)(void), void (*fini)(void), void (*rtld_fini)(void), void *stack_end) __libc_start_main 함수이다. 이 함수에서 main 함수를 호출하는데, 동적분석으로 인자로 받는 main함수의 위치를 알아보자 main 함수는 0x555555554a3a 에 있다고한다. [ main ] 지금부터 메인함수를 나눠서 설명해드릴께요 0x55555.. 2020. 3. 14.
[HackCTF] (Reversing) Keygen 풀이 (No ida pro , handray) 문제를 다운받고 ida로 열어보자 [main] 0x41 (61) 만큼 입력을 받고, check_key로 확인한다음 맞으면 flag파일을 열어서 출력해준다. [cheak_key] 입력값이 10이상, 64이하 이면, 입력값을 encoding한다음 OO]oUU2U m[] var_C : 입력값의 길이 --> len var_10 : iterator --> i var_11 : 0x48 --> v 입력값 : s[] 0xEA0EA0EB : v2 저는 ida pro가없으니 이제부터 encoding루틴을 직접 handray해보겠습니다. 루틴은 4단계로 나눠서 설명해드릴께요 [ 반복문 ] while ( i < len ) [ First ] E1 = (s[i] + 0xC ) * v + 0x11 [ Second ] E2 = ( .. 2020. 3. 6.