본문 바로가기

Stack7

StackBasedOverflows-Windows-Part2 (익스플로잇 작성을 위한 어셈블리어) 원본 : 번역본 : 나머지 2개는 좀 한가해지는대로 해서 올리겠습니다. ㅎㅎㅎ 2011. 6. 7.
StackBasedOverflows-Windows-Part1 (기본 개념) 원본 : 번역본 : 제가 직접 번역을 해보았는데 오역이 있으면 알려주시기 바랍니다. (고등학교 때도 독해 안해봤는데 ... ㅋㅋㅋ 제가 이런걸 해볼줄이야 ... ㄷㄷ) 그리고 이걸 기본으로 해서 제가 다시 문서를 작서할 생각입니다. 2011. 6. 7.
Stack 구현 #include using namespace std; struct node { int data; node* p; }; class stack { public: node* head; node* tail; int sz; stack() { head = NULL; sz = 0; tail = NULL; } void push(int num) { node* new_node = new node; new_node ->data=num; new_node ->p=tail; tail=new_node; sz++; } int pop() { if(isEmpty()) { return -1; } int tmp = tail->data; node* del_node = tail; tail = tail->p; delete del_node; sz.. 2010. 7. 15.
간단한 리눅스 RTL BOF RTL BOF : (Return To Library Buffer Over Flow) 문제 환경 : bof1.c : 공격대상 파일 소스 bof1 : 공격대상 실행파일 문제 실행 결과 : [linuxer@sclclass2 s12091455]$ ./bof1 enter id dakuo you entered dakuo program ends here 문제요구 조건 : RTL BOF 공격을 이용해 enter id 입력하는 구문으로 되돌아오기. enter id .................. you entered .......... enter id you entered ......... ................ 사전조사 : [linuxer@sclclass2 ~]$ cd s12091455 [linuxer@scl.. 2010. 3. 22.
쓰레드(Thread) 쓰레드(Thread) : 하나의 프로그램 내에서 여러 개의 실행 흐름을 두기 위한 모델 1. 독립적인 스택(Stack)을 가진다. 2. 코드 영역을 공유한다. (위와 같이 쓰레드 main 함수는 코드 영역에 존재하는 모든 함수를 호출할 수 있다) 3. 데이터 영역과 힙을 공유한다.(전역변수와 동적 할당된 메모리 공간 공유 가능) 4. 프로세스 핸들 테이블 공유 프로세스 핸들 테이블에 대한 핸들 정보는 프로세스 내의 쓰레드 들에게 공유되어 각 쓰레드가 그 핸들에 대해 접근이 가능하다 (참고 : 같은 프로세스내의 쓰레드들은 스택 이외의 모든 것을 공유한다) 프로세스와 쓰레드 Windows 에서 프로세스는 단순히 쓰레드를 담는 상자다. 실제 프로그램 흐름을 형성하는 것은 쓰레드이다. 따라서 스케줄러(Windo.. 2010. 2. 28.
아이다(IDA)의 Debugging - Stack 분석 IDA의 디버깅을 통한 스택의 Stack 분석 분석해볼 프로그램은 IDA의 사용법을 알아보기 위해 예제로 썻던 것을 계속 쓰겠다. 다시 한번 설명하면 func( ) 함수에 세 개의 값을 파라미터로 전달하고 그 값들의 합을 리턴하는 프로그램이다. #include func(int a, int b, int c) { return a+b+c; } int main(void) { int sum; sum = func(1, 2, 3); return sum; } 프로그램이 실행되기 전의 Stack이다. ESP, EBP의 위치를 살펴본다. .text:00401060 push ebp : EBP가 가리키는 곳이 SFP(Saved Frame Pointer)로 변하고, 그 윗부분이 RET로 바뀌며 스택에 EBP값 12FFC0h값을.. 2009. 11. 4.