본문 바로가기

Security/Reverse Engineering

[Reversing] Cross-Compiler & Remote Debugging with gdb on Linux Cross-Compiler & Remote Debugging with gdb on Linux1. Installing Cross-Compiler for MIPS, ARM, PPC, etc... 12345678910sudo apt-get install -y gcc-multilib-arm-linux-gnueabisudo apt-get install -y gcc-multilib-arm-linux-gnueabihfsudo apt-get install -y gcc-multilib-mips-linux-gnusudo apt-get install -y gcc-multilib-mips64-linux-gnuabi64sudo apt-get install -y gcc-multilib-mips64el-linux-gnuabi64s.. 더보기
[Reversing] ASLR 기능 제거하기 이번엔 PE 조작으로 ASLR 우회하는 방법에 대해서 알아보겠습니다. 1. ASLR ( Address Space Layout Randomization ) ASLR 은 PE 파일이 메모리에 로딩될 때 로딩 시작 주소 값을 랜덤하게 바꾸는 기술입니다.또한 DLL 파일도 초기에 로딩되는 주소가 매 실행마다 달라집니다. 윈도우에서는 Vista 버전부터 적용이 됬고 리눅스는 고대 때 부터 적용이 됬던 기술이죠 (원도우는 역시 열발 늦어 ㅋㅋ) 커널 버전으로 보면 123456789101112OS Kernal versionWindows 2000 5.0Windows XP 5.1Windows Server 2003 5.2Windows Vista 6.0 ------------ ASLR 기술 적용 시작Windows Serve.. 더보기
[Reversing] Basic Knowlodge about IA-32 Registry 이번 강의는 리버싱을 배우기전 필수로 외우고 있어야 하는 레지스터에 대해 알아보겠습니다. 1. CPU Register ( CPU 레지스터 ) 먼저 레지스터란 : CPU 내부에 존재하는 다목적 저장 공간입니다. 몇몇분들이 가끔 우리가 흔히 메모리라 말하는 RAM ( Random Acess Memory )과 헷갈리시는 분이 계시는데 (없으면 말고요) 속도면에서 보면 CPU 는 RAM에 있는 데이터를 사용하기 위해서는 물리적으로 먼 거릴 돌아 가야되기 때문에 시간이 오래 걸립니다. 하지만 레지스터는 CPU와 한 몸이기 때문에 고속으로 테이터 처리가 가능하죠 2. Register 는 필수? 위에 언급했듯이 리버싱을 배우기 전 필수로 외우고 있어야 하는 것 중 하나가 Register 입니다. 이유는 일단 우리가 .. 더보기
[Reversing] About Reversing?? 이번 강의에선 간단히 리버싱의 정의와 무엇이 있는지만 알아보겠습니다. 1. 리버싱이란 무엇? 정확히는 리버스 엔지니어링이라 부르죠, 장치 또는 시스템의 기술적인 원리를 이해하며. 단점을 보완하고 새로운 아이디어를 추가시키는 일련의 작업이라 사전적으로 말씀 드릴 수가 있고, 소프트웨어, 프로그램같은 것을 Reverse, 역으로 분석하는 작업을 리버싱 이라 부릅니다. 정의는 이쯤 알아두시고 2. 대표적인 사례 그 다음으로 리버싱을 이용한 대표적인 프로그램들을 예를 들면, 1. Kegen 여러 유명한 프로그램들을 보면 시리얼 키젠 등 이런게 많습니다. 예를들면 포토샵 키젠, 베가스 키젠 등... 이런 프로그램들은 각 프로그램들의 시리얼 알고리즘을 분석 후 그 알고리즘을 토대로 정상적인 키를 출력하는 프로그램 .. 더보기