0x02 Reverse Engineer(124)
-
[CodeEngn Basic 11] Do you know StolenBytes?
문제 : Find the OEP + Find the StolenByte 바이너리 실행: 아까 본 파일..? [그림 1] 키 파일 체크하세요. [그림 2] 파일을 찾을 수가 없다. 또 UPX이다. 문제의 오류인가... 같은 문제라서 크랙을 해보기로 하자. 00401025 68 B9204000 push 11.004020B9 ; ASCII "abex.l2c"0040102A E8 5E000000 call 11.0040108D ; jmp to kernel32.CreateFileA abex.l2c라는 걸 생성하라고 한다. [그림 3] 파일 생성 재 시작 후 GetFileSize의 반환 값이 0x12가 되어야 한다. 0x12 => 18 (dec) 18자리 aaaaaaaaaaaaaaaaaa [그림 4] 조건에 맞게세팅..
2017.08.20 -
[CodeEngn Basic 10] Do you know ASPACK?
문제 : After finding the OEP, FIND the OPCODE of the branch instruction going to the "goodboy routine" The solution shoule be in this format : OEP+OPCODE 바이너리 실행: [그림 1] 네임과 시리얼 값을 찾아내야 하는 바이너리 [그림 2] Aspack ASPACK은 esp의 주소에 hardware bp를 걸면 된다. 그 후 JNZ를 만나게 되는데 점프를 진행하게 되면 DB 어쩌고 막 되어있는게 있는데 이게 분석되어 지지 않은 바이너리라는 의미.이것을 Analysis를 이용해서 풀어주면 push ebp의 주소가 oep가 되는 기막힌 언패킹. OEP : 00445834 주의깊게 봐야할 문구 0..
2017.08.20 -
[CodeEngn Basic 9] Do you know StolenBytes?
문제 : Find the StolenByte 바이너리 실행 : [그림 1] 키 파일을 체크하라는 구문이 있다. [그림 2] 파일을 찾을 수 없다고 한다. 지 맘대로 ... 프로그램을 뜯어보자. 또 UPX다 .. 으휴 여기서 바이트 값들을 잃어버렸다..... MessageBoxA함수는 보이는데 파라미터 값들은 노출되어 있지 않다. [그림 3] 파라미터 어디갔니? 여기에 숨어있었다. [그림 4] popad 바로 밑에 데이터가 떨어져 있다. 0040736E 6A 00 push 0x000407370 68 00204000 push 09.00402000 ; ASCII "abex' 3rd crackme"00407375 68 12204000 push 09.00402012 ; ASCII "Click OK to check..
2017.08.20 -
[CodeEngn Basic 8] Do you know OEP feat. UPX
문제 : Find the OEP 바이너리 실행: [그림 1] 오잉 왠 계산기가 ..!! 구조를 알아보고 싶다.. 얘도 UPX.. UPX가 많이 쓰이나보다. [그림 2] UPX OEP : 01012475 초 간단한 풀이가 완성되었다...
2017.08.20 -
[CodeEngn Basic 7] WHAT ABOUT THE CHANGE BY 'CodeEngn'
문제 : Assuming the drive name of C is CodeEngn, what does CodeEngn transform into in the process of the serial construction 바이너리 실행: [그림 1] 이놈도 시리얼 입력 문제 틀린 값을 넣었을 때 [그림 2] 틀린 값 넣었을 때 프로그램을 뜯어봅시다. 0040107D |. 6A 00 push 0x0 ; /pFileSystemNameSize = NULL0040107F |. 6A 00 push 0x0 ; |pFileSystemNameBuffer = NULL00401081 |. 68 C8204000 push 07.004020C8 ; |pFileSystemFlags = 07.004020C800401086 |. 68..
2017.08.20 -
[CodeEngn Basic 6] You Find OEP
문제 : Unpack, and find the serial, The solution should be in this format : OEP+SERIAL 바이너리 실행 : [그림 1] 시리얼을 찾아야 한다. 5번 문제와 동일하게 upx로 패킹 된 것을 볼 수 있다. [그림 2] upx 패킹 뜯어보자 프로그램 !! OEP는 00401360이다. 프로그램을 살펴보자. 0040146E E8 9CFBFFFF call 06.0040100F (bp) 바이너리가 GUI환경으로 이루어져 있기 때문에 다이어그램 텍스트를 찾아야 한다. user32.GetDigitemTextA에 BP를 걸었다. 0040105C FF15 B0524200 call near dword ptr [0x4252B0] ; user32.GetDlgItem..
2017.08.20