0x03 Reversing Theory(50)
-
2018 신한 시큐어 세미나 자료
안녕하세요. 오늘 중앙대학교에서 개최한 신한 시큐어 세미나에서 리버싱 기초 발표를 진행한 c0nstant입니다. 자료 마음껏 유포하셔도 됩니다. 궁금한 점은 쪽지 주세요.
2018.06.23 -
ARM Thumb Mode 공부 미완성
부제 : "ARM에 2가지 모드가 있는 것을 기억해~ " 우선, ARM에서 사용되는 2가지 모드1. ARM Mode2. Thumb Mode ARM Mode는 32비트 RISC Machine이다. Thumb라는 것은 흔히 알기로 '엄지 손가락'이며, 최고를 일컫는 제스처이다. PC환경에서 최고를 좌우하는 것 중 하나는 메모리 사용의 효율성이다. 굳이, 이런 예시를 들어보는 이유는 이해하기 쉽게 하기 위해서 이다. ^.^ 일단 간단하게 요약하자면, ARM의 Thumb모드는 메모리를 효율적으로 다룰 수 있다. 이제부터 구체적으로 들어가 보겠다. 지금은 ARM 프로세서에 대해 삽질 중입니다 1. ARM MODE : 32BIT Instruction Set Apply 2. Thumb MODE : 16BIT Inst..
2018.06.10 -
Angr를 공부해봅시다
보호되어 있는 글입니다.
2018.06.10 -
PE 64비트에서 최적화에 대한 이야기
64비트에서의 최적화 관련 처리 1. 강화 된 함수 인라인 처리 "인라인 함수 확장(Inline Function Expansion)" 조건에 따라 64비트 컴파일러는 함수 호출을 함수의 내용으로 대체하기도 하는데, 이를 인라인 함수 확장이라 한다. 인라인 처리라는것은, 함수를 CALL명령으로 처리하는게 아니라 함수 자체 코드를 호출 부분에 삽입하는 것이다.물론, 함수 자체를 호출 부분에 삽입하기 때문에 프로그램의 크기는 증가하게 된다. 하지만, 호출을 위한 스택 준비와 CALL 명령의 분기로 인한 부하는 없앨 수 있다.디버깅은 다소 어려울 수 있다. 왜냐하면, 심볼을 제대로 찾을 수 없기 때문이다. 2. 최종 호출 제거 (Tail Call Elimination) 우선 기억해두어야 하는 것이 하나 있다.스..
2018.05.15 -
64비트 간단한 예제로 다루어보는 최적화 모드들에 대한 분석
보호되어 있는 글입니다.
2018.03.15 -
우연히 삽질 후 알게 된 메인함수의 뒷 이야기..?
집에 와서 디버깅을 조금 해보다가 재밌는것을 알게 되었습니다. 제목은 우연히 삽질 후 알게 된 메인함수의 뒷 이야기입니다. 많은 이들이 메인함수가 끝났을 때 return 0을 습관처럼 사용합니다. 무심결에 return 0을 사용하는데 그 근본을 알고 싶어 이번에 우연찮게 시도해보게 되었습니다. 테스트에 사용되었던 코드입니다.#include #pragma warning(disable:4716)char format[] = "ㅋ"; int i = 0;__declspec(naked)int main(int argc, char*argv[]){__asm{push ebpmov ebp,espmov ecx, icompare:cmp ecx,0x4jl _loopje _out_loop:mov eax, offset formatp..
2018.03.14