codeengn.com (advance 06)

2023. 12. 4. 09:53리버싱

 

프로그램을 실행시키면 다음과 같은 화면이 뜹니다. 저 확인 버튼을 누를 때마다 숫자가 증가하는 것을 확인할 수 있습니다.

아 맞다 UPX패킹풀어주세요.

이 프로그램은 안티디버깅이 되어있기때문에 ollyExt라는 플러그인을 사용해서 IsDebuggerPresent를 체크줬습니다.

처음 call목록에 들어가면 messagebox함수가 확인안됩니다. 따라서 messagebox가 호출되는 지점을 찾아줘야 됩니다.

저는 이벤트가 걸리는 지점에다가 브레이크 포인트를 걸고 스탭인투를 반복했습니다.

 

계속 진행을 하다가 다시 call목록을 확인해주면 messagebox를 확인하실 수 있습니다. 저는 이후 다음과 같이 브레이크포인트를 걸었습니다.

이후 F9를 누르면 messagebox에서 이벤트가 걸립니다. 확인을 누르기 전 치트엔진을 켜서 Process를 찾아서 잡아줍니다.

이후 1를 검색합니다. 이후 확인을 눌러주고 2가 되면 3검색 이후 4를 검색했습니다.

다음의 값이 해당하는 주소를 찾아서 20으로 수정해봤습니다.

20으로 수정한 이후 f9버튼을 누른 뒤 다음의 이벤트 결과가 20이 되는 것을 확인 하실 수 있습니다. 이후 해당주소(360E978)를 복사합니다. 

Hex dump창에 간 뒤 Ctrl+G단축키를 눌러 다음 주소(360E978) 검색해줍니다.

그러면 16이 나옵니다. 이를 10진수를 바꾸면 22입니다. 

여기서 의문점이 들 수 있습니다. 아까 20으로 바꿧는데 왜 22이지? 이것은 제가 이후 F9키로 2번 정도 더 반복했기 때문입니다.

이제 다음 결과를 하드웨어 브레이크포인트를 걸어줍니다.

그리고 F9를 눌러 CMP구문이 나올때까지 돌려봤습니다.

2번 정도 돌리니 다음과 같은 CMP구문을 발견했습니다. 여기서 EAX(17) = 23(10진수)이고 EBP(316) = 790(10진수)입니다. 따라서 남은 군 생활은 790이 되겠네요... 불쌍...ㅠㅠ

 

'리버싱' 카테고리의 다른 글

ImagePrc(reversing.kr) write up  (1) 2023.12.04
CodeEngn basic 17(write up)  (1) 2023.11.19
Position(reversing.kr) write-up  (1) 2023.11.19
reversing.kr CSHOP풀이  (1) 2023.11.13
Reversing.kr ransomeware  (0) 2023.11.13