좀 많이 찝찝한 문제..
일단 언패킹해줌
굳이 캡쳐는 안했는데 안티디버깅기법 존재함
IsDebuggerPresent라서 패치해주고 디버깅 가능한 파일로 저장해서 다시 뜯음..
메시지박스 확인
EBP에서 유니코드로 며칠째인지를 보여줌
EBP값 덤프창에 올려서 확인.
이 값에 하드웨어 bp걸고 확인
어떤 값이 EAX로 먼저 들어가고 이 값이 EBP로 들어감.
EAX가 00330031이면
EBP에 31 00 33 00 으로 유니코드로는 "1" "3" = 13이 출력되는 식인듯.
이제 이 eax값을 추적해보면 된다.
하나하나 함수를 뜯어보는데 너무 양이 많았다. 삽질도 엄청 해서 찝찝함.
근데 결국은 EAX에 일수가 기록되고, 메시지박스 출력 후에는 계속해서 비교하는 과정을 거친다.
만약 14일째라면 EAX에는 14가 있고, 비교대상인 EBP에는 316이 저장되어 있었다.
저 비교 과정 이후에 종료함수쪽으로 이어지는 것으로 확인했다.
hex(316) = 790
이 값을 md5 encrypt하면 플래그를 얻을 수 있음.
'Reversing' 카테고리의 다른 글
[코드엔진] Advance 09 (0) | 2020.03.23 |
---|---|
[코드엔진] Advance 08 (0) | 2020.03.22 |
[Ap0x] unpackme.exe 인라인 패치 (0) | 2020.03.22 |
나뭇잎책 정리 UPACK (0) | 2020.03.17 |
지뢰찾기(winmine.exe) 분석 (0) | 2020.03.17 |