안녕하세요! 오늘은 지금까지 배웠던 어셈블리어 명령어들을 응용하여 난독화 프로그램을 만들어보겠습니다. ●난독화 (Obfuscation) ●難(어려울 난) + 讀 (읽을 독) = 코드를 읽기 어렵게 만드는 것. ●왜?? 코드를 보호하거나 알아보기 힘들게 하기 위해 난독화를 진행한다. ●누가?? 악성코드 제작자, 소프트웨어 개발자 등등 xor 명령어를 응용하여 "hello world!"를 난독화해서 출력하는 프로그램을 만들어보겠습니다. 다음과 같은 어셈블리 프로그램을 구현해봤습니다. 지금까지 작성해왔던 프로그램과는 다른점은 main section뿐만 아니라 임의로 loop이라는 section을 추가했다는 점입니다. 코드를 분석을 해보면, hello world! 문자열을 가진 message를 스택에 push ..
안녕하세요! 지난 시간에 이어서 오늘은 어셈블리어 명령어 중 lea, and, or, xor 명령어에 대해서 알아보겠습니다. LEA (Load Effective Address) : 유효 주소 로드 # 출발지는 r/m32 # 목적지는 레지스터 # 레지스터 연산 결과를 레지스터에 저장(not 포인터) MOV와 무엇이 다른가?? # MOV는 값을 로드한다. mov eax, [ebx+ecx] # LEA는 유효 주소를 로드한다. lea eax, [ebx+ecx] lea 명령어를 사용해서 프로그램을 짜보겠습니다. gdb를 사용하여 분석을 하기전에 이 프로그램이 어떻게 동작할지 미리 고민을 해보시기 바랍니다. mov연산을 실행하고 나서 eax에는 1, ebx에는 4, ecx에는 7이 저장될 것입니다. 위에서 설명했듯..
- Total
- Today
- Yesterday
- reversing
- call
- 어셈블러
- Push
- 리눅스 시스템 콜
- instruction
- cmp
- linux
- ubuntu
- 우분투
- 논리연산
- vim
- 어셈블리
- gdb
- system call
- 어셈블리어
- nasm
- Sub
- 터미널
- 리버스 엔지니어링
- 리버싱
- 치트엔진
- 리눅스
- 해킹
- jmp
- mov
- 명령어
- 스택
- add
- 사이버공격
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |