abexcm은 강의들이 많으니 색다른 패치법을 공개하겠습니다.
기본적인 점프문 패치법입니다.
아래 사진은 cmp 컴페어의 약자입니다.
비교문을 이용해서 자기가 자기 자신을 인식하게끄름 해서 패치하는 방식입니다.
뭐 물론 cmp eax,3 이런식으로 적어줘도 패치는 됩니다.
옆에 Z 부분이 처음에 저 부분으로 트레이스를 해서 넘어가시면 Z에 대한 플래그 영역이 0일겁니다.
그 플래그의 영역을 1로 바꿔주시면 점프가 된답니다.
아래 사진은 설명이 좀 길어질것 같습니다. 일단 사진먼저 보시도록 하겠습니다^^
네모칸 되어있는 것이 핵심입니다. 레지스트리 상에서돌려보면 eax 와 esi 값이 안맞아서 점프를 하지 않도록 되어있습니다.
계산 연산중 inc 는 해당 값을 1증가 시키는 겁니다. dec는 감소 입니다.
그러므로 해당값을 맞추려면 inc eax 로 값을 1 올리셔야합니다.^^
해당 사진은 JE의 반대되는 명령어 JNZ를 줌으로서 JE일때 점프를 하지않음. -> JNZ 로 바뀜으로서 역 (점프를 함)으로 변경되었습니다^^
이제부터 가장 어려운 난이도 코드 케빙을 해보겠습니다^^;
일단 올리디버그에서 휠을 조금만 내려서 00으로 채워져있는 영역중 아무대나 선택합니다^^
전 저기 있는 부분을 선택했습니다. 저 부분을 컨트롤 c를 눌러서 복사합니다.(어셈라인 복사가 가능합니다!)
메모장에 붙여넣기를 해줍니다^^
전 저기 있는 사진처럼 jmp 부분에다가 call addree 를 적어주겠습니다^^
그리고 지정해준 빈영역으로 돌아와서 레지스터를 확인합니다. 현재 eax, 2 esi가 1이므로 inc esi를 생성해주고 값을 연산 후
되돌아갈수있도록 retn 을 만들어줍니다.^^
이렇게 하면 코드케이빙을 이용해서 크랙이 가능해집니다! ^^
마지막 방법입니다. 좀 재밋을지도모르겠군요^^
좀 무식하지만 설명드리겠습니다^^je 가 분기문(값을 연산하여서 점프하거나 하지않는 곳 )입니다.
이곳 부터 시작하여 메시지박스 전체 스타일 부분을
지정해서 nop를 때려준겁니다 ^^;;
이렇게 해도 패치가 된답니다^^
허접한 강의들으시느라 수고하셨습니다^^;
다음부터는 동영상강좌로 해야겟군요..ㄷㄷ 손이 너무 많이갑니다!
'Hacking & Security > Reverse Engineering' 카테고리의 다른 글
WinHex17sp1Patch (0) | 2013.05.06 |
---|---|
컴퓨터프로그램 보호법 시행규칙 [일부개정 2008.7.3 제7호] (0) | 2013.05.04 |
Lite OllyDbg (0) | 2013.01.23 |
리버싱 사이트 대거포진! (0) | 2012.10.20 |
ASCII 와 UNICODE의 차이점 (0) | 2012.10.19 |