본문 바로가기
반응형

전체 글41

[1주] 3장~4장 - 리틀엔디언, IA-32 레지스터 리버싱 핵심 원리 [1주] 3장 - 리틀 엔디언 표기법 바이트 오더링(Byte Ordering)은 데이터를 저장하는 방식.크게 2가지 방식이 있다 : 1. 빅 엔디언(Big Endian)2. 리틀 엔디런(Little Endian) 어떻게 다른지 보자 1바이트의 자료형을 저장할떄는 차이가 없다. 자료형의 크기가 2바이트 이상이면 차이가 난다. 빅 엔디언 리틀 엔디언 데이터를 저장할 때 앞에서부터 순차적으로 저장 한다. 저장되는 바이트의 순서가 뒤집혀 있다. RISC 계열의 CPU에서 사용됨. 네트워크 프롵콜에서 사용됨. Intel x86 CPU에서 사용됨. 장점 : 사람이 보기에 직관적이다 장점 : 산술 연산과 데이터의 타입이 확장/축소될 때 더 효율적이다. ※ str 문자열은 엔디언 형식과 상관없이 동일.. 2015. 3. 9.
[1주] 1장~2장 리버싱 핵심 원리 [1주] 1장 - 리버싱 스토리 (1장은 디테일한 정리는 skip하겠다) * 리버스 엔지니어링이란?* 분석 방법-정적 분석-동적 분석* Source Code, Hex Code, Assembly Code* 패치와 크랙 2장 - Hello World! 리버싱 2장에서는 HelloWorld.exe를 실행 했을때 팝업에 나타나는 "Hello World!" 문자열을 "Hello Reversing!" 이라고 바꾸는 실습을 한다. (OllyDbg 이용) 실습을 하기 전에 알아야 하는 부분 : 출력되는 문자열을 바꾸기 위해서 먼저 main 함수를 찾아야한다. ※ 원본 소스코드에서 사용된적 없는 API들이 호출되면 main() 함수가 아니라는것을 알수있다. 예를 들어 Hello world! 팝업이 뜨는.. 2015. 3. 9.
05 - Immunity Debugger Immunity Debugger는 스크립트 디버거와 GUI디버거 사이를 이어주는 다리와 같은 디버거다. 악성코드를 분석하는 사람들에게 가장 강력한 파이썬 라이브러리와 완전한 사용자 인터페이스를 제공한다. PyCommand PyCommand는 다양한 디버깅 기능을 Immunity 디버거 내에서 수행하게 작성된 파이썬 스크립트다. PyCommand의 구조 : PyCommand 의 두 가지 필수 조건 :1. 하나의 파라미터를 받아드리는 main() 함수를 정의해야함2. 문자열을 리턴해야함 PyCommand 실행시키기 :1. Immunity 디버거가 설치된 디렉토리 내의 PyCommands 디렉토리에 해단 스크립트 파일이 존재하는지 확인2, 디버거의 명령 바에 ! 형태로 입력해서 PyCommand 스크립트 실행.. 2015. 1. 26.
04장 - PyDbg 순수 파이썬 윈도우 디버거 4.1 ㅡ 브레이크 포인트 확장 PyDbg를 이용하면 사용자 정의 콜백 함수를 구현함으로써 이벤트 핸들러를 쉽게 확장시킬 수 있다. 콜백 함수에 디버그 이벤트가 발생했을 때 수행될 로직을 구현해 넣으면 된다. 호출된 콜백 함수가 리컨을 하면 제어권은 디버거에게 넘어가고, 디버거는 디버깅 대상 프로세스가 계속 실행되게 한다. 소프트 브레이크 포인트를 성정하는 PyDbg 함수의 프로토타입 :address : 소프트 브레이크 포인트를 설정할 주소description : 브레이크 포인트에 교유한 이름을 부여할때 사용 (선택적으로 사용한다)restore : 발생한 브레이크 포인트를 초리한 이후에 자동으로 해당 브레이크 포인트를 해제할 것인지에 대한 여부handler : 브레이크포인트가 발생했을때 호출할 함수를 지.. 2015. 1. 26.
반응형