Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

abcdef

CodeEngn Basic - (5) 본문

IT 독학/CodeEngn

CodeEngn Basic - (5)

whistle.l 2018. 8. 11. 02:18

다운을 받습니다. 실행을 시켜봅니다.



이번 문제는 등록키를 찾아내는 것입니다.



PUSHAD가 있는 것을 보아하니 UPX패킹이 되어있는 것 같습니다.

EXEINFO PE로 열어봅니다.



밑에 보듯이 UPX로 패킹이 되어있습니다.

UPX패커로 풀어봅니다.



풀었으면 올리디버거로 다시 파일을 엽니다.

열었으면 아까의 에러문구를 찾기 위해

오른쪽마우스 – search for – all referenced text strings

를 해줍니다.



찾으면 들어가봅니다.



보아하니 저 JNZ(Zero Flag0일 때 점프)가 나올 문구를 결정하는 코드인 것 같습니다. 하지만 위에 코드에는 비교코드가 없습니다. 함수를 call하고 있습니다. 아마도 위에 함수가 결정을 하는데 저흰 wrong문구가 뜨므로 저 함수에서 Zero Flag0으로 만드는 것 같습니다. (시리얼 키는 대충 아무거나 적어주십시오)

함수 안으로 들어가봅니다. (F7)



들어가서 보면 CMP를 해주고 JE(두 값이 같다면)로 점프를 할지 않 할지 결정합니다. EAXEDX를 비교하는데 저희는 시리얼 키에 12345를 입력했는데 Registered User와 비교를 한다면 저희는 위에 칸에는 Registered User를 넣어야 제로 플레그가 0이 되는 걸 알 수 있습니다. Registered User를 넣고 다시 실행시켜보면 JNZ가 실행되지 않습니다. 그 밑 명령문들을 볼 수 있습니다.



그럼 그 밑에도 JNZ가 하나 더 있습니다. 아까 전과 마찬가지로 위에 CALL해주는 함수로 들어갑니다.



아까 전과 거의 똑 같은 코드들이 나왔습니다. 이번에도 EAXEDX를 비교합니다. EAX는 아까 전 저희가 두번째 칸에 넣은 키입니다. GFX-754-IER-954로 다시 넣어주고 다시 실행시켜봅니다.



그럼 JNZ가 실행이 되지 않으면서 성공 창이 뜨게 됩니다.

결국 정리하자면 키는



이렇게 됩니다.


'IT 독학 > CodeEngn' 카테고리의 다른 글

CodeEngn Basic - (7)  (0) 2018.08.11
CodeEngn Basic - (6)  (0) 2018.08.11
CodeEngn Basic - (4)  (0) 2018.08.11
CodeEngn Basic - (3)  (0) 2018.08.11
CodeEngn Basic - (2)  (0) 2018.08.11