Dreamhack(reversing) rev-basic-3 포스팅 썸네일 이미지

리버스 엔지니어링 (Reversing)/Wargame

Dreamhack(reversing) rev-basic-3

개인적으로 Dreamhack의 reversing 문제의 basic 파트 부분의 앞부분은 쉽다고 생각한다. 하지만 3번은 입문자에게 쉬운 난이도가 아니어서 풀어볼 것이다. x64디버거로 실행시키면 input 값을 받는다. IDA를 이용하면 main 부분을 좀 더 직관적으로 알아볼 수 있다. main 함수를 확인해보자. 디스어셈블 하면 친숙한 그림이 보일 것이다. Input 값을 v4에 저장하고 v4 값을 sub_140001000 함수에 실행해서 나오 값이 참이라면 Correct를 거짓이라면 Wrong을 출력한다. 그럼 이제 sub_140001000 함수를 살펴보자 0x18 = 24 번의 반복을 실행하는데, byte_140003000의 배열에 원소를 하나씩 비교하는 것 같다. 즉 함수(아규먼트1)로 실행하면..

2021.09.12 게시됨

리버스 엔지니어링 (Reversing)/Archive

어셈블리어 명령어 (assembler language)

어셈블리어는 같은 인텔 CPU에서도 인텔기반 표기 방법과 AT&T 기반 표기 방법에 차이가 있다. 디버거를 사용하여 어셈블리어를 표시할 때 표기 방법을 선택할 수 있다. 인텔 AT&T 레지스터 표현 eax %eax 값의 표현 AABBCCDDh 또는 0xAABBCCDD $0xAABBCCDD 명령어 크기 표현 mov movl (long형) movb (byte형) 메모리 주소 [주소] (주소) 오퍼랜드 방향 목적지(dst) 목적지(dst) 데이터 이동 명령어 데이터 이동 방법은 다음과 같이 다섯 가지로 구분된다. x86 : 전부 다 사용 가능 ARM : 메모리에서 메모리로 직접 이동한 것은 불가능하다 1. 값을 직접 레지스터로 대입하기 2. 레지스터에서 레지스터로 옮기기 3. 값을 직접 메모리로 대입하기 4...

2021.08.22 게시됨

버퍼 오버플로우 공격 (Buffer overflow attack) - 2 포스팅 썸네일 이미지

리버스 엔지니어링 (Reversing)/Archive

버퍼 오버플로우 공격 (Buffer overflow attack) - 2

1에서 ret주소에 입력한 값이 덮어지는 것을 확인했다. 그렇다면 ret주소값에 원하는 값을 넣을 수 있을까? 큰 고민 없이 간단한 메모리 확인만으로 취약한 함수를 이용해 ret주소에 공격자가 원하는 주소로 덮어 공격 할 수 있다. 크게 어렵지 않다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include ,stdio.h> void shell() { setreuid(0,0); system("whoami"); printf("Congratulation! \n"); } void printit() { printf("General Program! \n"); } void main() { int crap; void(*call)() = printit; ch..

2021.08.20 게시됨

버퍼 오버플로우 공격 (Buffer overflow attack) - 1 포스팅 썸네일 이미지

리버스 엔지니어링 (Reversing)/Archive

버퍼 오버플로우 공격 (Buffer overflow attack) - 1

리눅스 디버거를 사용하며 버퍼 오버플로우 공격에 대한 내용을 학습한다. Buffer overflow example code 1 : bof1.c (32bit) 1 2 3 4 5 6 7 8 9 #include int main() { char buf[10]; strcpy(buf, "aaaabbbbccccdddd"); return 0; } Colored by Color Scripter cs buf의 크기는 10인데, 입력 값을 16개 입력해서 발생하는 기본적인 버퍼 오버플로우 예시이다. gdb -q bof1 = -q 옵션은 quit 옵션으로 gdb에 대한 상세 설명을 생략한다 알아두면 좋은 옵션들은 set disassembly-flavor intel : intel 문법으로 보기 layout asm -> 어셈블리..

2021.08.20 게시됨

반응형