문제:
OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오.
정답인증은 OEP + OPCODE
EX) 00400000EB03
immunity로 열어보니
패킹이 되어있는 것을 확인할 수 있었습니다.
패킹방식은 Aspack.. UPX 툴로는 언패킹하지 못할 것 같습니다.
대신 원리를 살펴보면 패킹을 한 바이너리는
PUSHAD -> POPAD -> OEP 이런 과정을 거쳐서 원래의 entry point로 가게됩니다.
POPAD를 찾아봅시다.
POPAD를 찾고 F8을 이용해서 456501 까지 가면 PUSH 했던 445834로 뛰는 것을 볼 수 있습니다. 이 곳이 OEP라고 할 수 있겠습니다.
445834로 가봤더니 이런식으로 되어있는데 ctrl + A 나 Analysis -> Analyse code 를 누르면
이렇게 어셈블리어를 보실 수 있습니다.
여기서 문자열을 확인해보면
( 문자열 확인법은 ->
2020/02/23 - [Forensics/Reversing] - [CodeEngn 06] Basic RCE L06 )
뭔가 성공을 이야기하는 문자열이 보입니다. Enter나 더블클릭으로 가줍니다.
분기문의 OPCODE는 7555가 되겠네요.
그 조건을 만족 못할 시에는 '등록성공'으로 못갈 것 같습니다.
답: 004458347555
'Forensics > Reversing' 카테고리의 다른 글
[CodeEngn 08] Basic RCE L08 (0) | 2020.02.23 |
---|---|
[CodeEngn 07] Basic RCE L07 (0) | 2020.02.23 |
[CodeEngn 06] Basic RCE L06 (0) | 2020.02.23 |