reversing.kr-PEpassword
오랫만의 리버싱 포스팅입니다.
요새 비오비 플젝때매 바빳는데 잠깐 짬내서 reversing.kr의 PEpassword문제와 AutoHotkey문제를 풀었습니다.
모든 풀이는 제외하고 간단히 방법만 포스팅하겠습니다.
먼저 두개의 바이너리가 제공됩니다.
original.exe와 packed.exe파일입니다.
<original.exe>
<packed.exe>
흠...original.exe 파일은 원본파일이고, packed파일은 패킹이 되있어서 password가 맞으면 언패킹이 되는 문제인거 같습니다.
그럼 일단 packed.exe파일을 리버싱을 해서 password를 알아내야할 것 같습니다. original.exe파일을 왜 줬을지도 생각해 봐야하겠구요!!!
혹시나....아이다의 헥스레이가 빛을 바랠 수 있을지 시도해봤습니다.
....??? fail 이라네요.
sp 값에 문제가 있어서 디컴파일이 안된다는데, 그럼 수정을 해봐야겠습니다.
오류가 생긴 부분에 가서 alt+k를 누르면 저런 창이떠서 sp값을 바꿔줄 수가 있습니다. 이 값을 current sp 값과 동일하게 바꾸면 왠만하면 해결 됩니다.
또이러네....ida의 헥스레이 기능은 포기하겠습니다.
근데 일단 저 부분이 뭔가 있을 것 같은 예감이 들었습니다. 왜 저 부분이 문제가 있을까??? 생각해보고 넘어 가도록 하겠습니다.
저 부분(CMP 부분)이 값을 입력하면 멈춰서 CALL 004091D8 부분에서 연산 후 리턴값을 비교하는 부분입니다.
함수안은 요런데....흠....이건 도저히 연산을 코드로 못짤꺼 같아서 일단 CMP 부분후의 ZF를 CMP 부분이 참일 떄로 맞추었습니다.
비교부분!!
첨부터 의심스러웠는데.. 여기서 UPX 언패킹을 upx -d 옵션을 쓰지 않고 한번쯤 디버거로 언패킹을 해보신 경험이 있으신 분은 PUSHAD - POPAD 이어지는 언패킹과정 아실꺼에요!!
하지만 여기서도 PUSHAD - POPAD로 이어지는 구문을 봤었는데 혹시나해서 BP를 걸어보니 CMP 부분을 맞춰주고 난후에 여기서 걸리는 것을 확인했습니다ㅎㅎ
여기서 주석을 참고하시고 코딩을 하시면 됩니다!!!!
0 개의 댓글