오늘은 어셈블리어 명령어 중 많이 쓰이는 MOV, 산술 연산, JMP, CMP, 조건 분기, PUSH, POP, CALL, RET 명령어에 대해서 쉽게 배워보는 시간을 가져보겠습니다. MOV 명령어 MOV 명령어는 데이터를 저장하거나 레지스터 간 이동을 수행합니다. 이 레지스터는 CPU 내부에 존재하는 메모리 공간으로, 데이터를 저장하거나 처리할 때 사용됩니다. MOV 명령어는 MOV 명령어 뒤에 저장하고자 하는 데이터와 대상 레지스터를 입력하는 것으로 사용할 수 있습니다. 위 코드는 5라는 값을 갖는 AX 레지스터를 생성합니다. 즉 AX 레지스터에 5라는 값을 저장하는 역할을 합니다. 산술 연산 명령어 CPU에서는 수학적 연산을 처리할 수 있는 명령어가 포함되어 있습니다. ADD, SUB, MUL, D..
안녕하세요! 오늘은 지금까지 배웠던 어셈블리어 명령어들을 응용하여 난독화 프로그램을 만들어보겠습니다. ●난독화 (Obfuscation) ●難(어려울 난) + 讀 (읽을 독) = 코드를 읽기 어렵게 만드는 것. ●왜?? 코드를 보호하거나 알아보기 힘들게 하기 위해 난독화를 진행한다. ●누가?? 악성코드 제작자, 소프트웨어 개발자 등등 xor 명령어를 응용하여 "hello world!"를 난독화해서 출력하는 프로그램을 만들어보겠습니다. 다음과 같은 어셈블리 프로그램을 구현해봤습니다. 지금까지 작성해왔던 프로그램과는 다른점은 main section뿐만 아니라 임의로 loop이라는 section을 추가했다는 점입니다. 코드를 분석을 해보면, hello world! 문자열을 가진 message를 스택에 push ..
안녕하세요! 오늘은 어셈블리어 inc, cmp, test, dec, jcc, call, jmp 명령어에 대해서 알아보겠습니다. ● x86 명령어 레퍼런스에 대한 자세한 내용은 이곳을(http://kernfunny.org/x86) 참고하세요. INC : 피연산자의 값을 1 증가시킴. # OF, SF, ZF, AF, PF에 영향 DEC : 피연산자의 값을 1 감소시킴. # OF, SF, ZF, AF, PF에 영향 INC나 DEC는 보통 반복문에서 많이 쓰입니다. CMP : 두 값을 비교 # cmp 레지스터, 상수값 # cmp r/m32, 상수값 # cmp r/m32, 레지스터 # cmp 레지스터, r/m32 # 참고 레퍼런스에 따르면 Source1에서 Source2를 뺀 결과에 의해 Flags가 영향을 받는..
- Total
- Today
- Yesterday
- 리버싱
- 어셈블러
- 리눅스
- 명령어
- add
- 리눅스 시스템 콜
- 어셈블리어
- 논리연산
- jmp
- call
- reversing
- vim
- Push
- Sub
- 치트엔진
- 어셈블리
- cmp
- 우분투
- 리버스 엔지니어링
- system call
- 해킹
- 사이버공격
- mov
- 스택
- 터미널
- gdb
- instruction
- ubuntu
- nasm
- linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |