태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'ⓢ Assembly'에 해당되는 글 2건

  1. 2007.12.04 리버서들에게 큰 도움이 될 hex-ray decompiler=_+ (2)
  2. 2007.11.29 후킹 기술 중 function entry point에 jmp 인스트럭션 삽입 방법

리버서들에게 큰 도움이 될 hex-ray decompiler=_+

ⓢ Assembly 2007.12.04 23:12
아마 아시는 분들은 거짐 아실 겁니다. IDA의 개발자중 한분이 나오셔서 만든 plugin으로 어셈블리어를 C언어로 컨버팅해주는 엄청난 능력을 가지고 있다고 하는 바로 그 hex-ray에 대한 정보입니다.=_+
아래는 제가 심플하게 짠 코드입니다.
뭐 수업시간에 짜서내라고해서냈던 코드죠..=_=;

IDA로 불러온 뒤.

위에 나온대로 F5를 눌러봅니다~
(클릭해서보세요)
결과값 입니다. +_+

뭐 리버서 고수분들은 이런 플러그인은 그다지 필요 없으시겠지만..

그래도 여러모로 도움이 많이 될 것 같습니다.

저같은 경우에도 공부에도 여러 도움이 될 듯하구요..

참조는 아래사이트에서~

http://www.hex-rays.com
Trackback 0 : Comments 2
  1. Favicon of http://blog.naver.com/voiees BlogIcon 피니 2008.01.25 17:16 신고 Modify/Delete Reply

    지상 최대의 적 - Assembly와 영어
    둘과 친해지려면 얼마나 공부해야 할까요? ㅎㅎ

  2. Favicon of http://blog.naver.com/moto99 BlogIcon 이동영 2008.01.26 21:30 신고 Modify/Delete Reply

    ㅋㅋ 꾸준히 하면 자신도 모르게 고개를 끄덕이고 있을 겁니다.

Write a comment


후킹 기술 중 function entry point에 jmp 인스트럭션 삽입 방법

ⓢ Assembly 2007.11.29 15:29

출처 : http://fullc0de.egloos.com/3507292

후킹 기술 중 function entry point에 jmp 인스트럭션 삽입 방법

여러가지 후킹기술들이 많이 있다. 그 중에서 function entry point를 특정 5바이트의 코드로 치환하여 실행 흐름을 변경시키는 방식이 간간히 볼 수 있다.

jmp 코드를 삽입하는 어셈블리 코드는 아래와 같다. 코드브레이커즈 저널의 Hooking Windows API - Technics of hooking API functions on Windows 에서 발췌했다.



mov byte ptr [edi],0E9h ; E9는 jmp 인스트럭션 opcode 이다.
mov eax,offset new_sleep ; eax에 new_sleep 함수의 주소를 할당한다.
sub eax,edi ; 할당된 주소에서 후킹하고자 하는 위치[edi]의 주소를 뺀다. 상대주소 계산을 위해서다.
sub eax,5 ; 추가로 5bytes를 빼줌으로써 jmp 인스트럭션 길이(5bytes)를 감안해준다.
inc edi ; 삽입 된 E9 opcode 다음에 계산된 상대거리(offset)를 삽입하기 위해 1bytes 올려준다.
stosd ; 주소를 edi에 복사한다.



물론 이 코드 앞뒤로 메모리 프로텍션을 PAGE_EXECUTE_READWRITE로 풀어줬다가 원복시키는 코드가 존재해야 겠져..

후킹이 끝나고 나서 다시 원래되로 돌려주는 루틴도 필요합니다.~ -_-;;
Trackback 0 : Comment 0

Write a comment

티스토리 툴바