test test 는 CF , OF 플래그를 0으로 만든다.ZF : 값이 0 일 경우 셋팅된다. SF 플래그 셋팅PF : 짝수면 0 홀 수면 1로 셋팅된다. flagSF : sign flag == negative flag 음수면 1 양수면 0 PF : 홀짝을 구분하는 플래그로 0 : 짝수 1 : 홀수 를 의미한다. NEG 숫자를 2의 보수로 바꾸는 명령어이다. 비트를 모두 반전시키고 가장 오른쪽 비트에 1을 더해서 구한다. 예제 다음과 같은 결과는 반전 후 1을 더한 결과인데 계산기를 보면 쉽게알 수 있다. BIN 부분을 잘보면 0001 이 1110 되었으며 제일 마지막 1110 에 1을 더해서 1111 이 되었음을 알 수 있다. lodsbesi에서 가리키는 주소에 있는 값을 한 바이트씩 로드해서 eax..
비교와 동시에 바꾸는 명령어이다. 멀티 스레드로 인한 문제점을 해결하기 위해 사용한다. lock cmpxchg 라는 형식으로 사용하면 해당 인스트럭션이 실행되는 동안 다른 스레드는 해당 명령어에 접근할 수 없다. 기능1 AL, AX 또는 EAX 레지스터를 DESTINATION과 비교해서 같으면 SOURCE를 DESTIONATION에 집어넣습니다. 예제 eax 값은 69 입니다. EBP 지점은 69 그리고 DL SOURCE에 해당하는 부분은 69입니다. 위의 상황을 정리하면 AL 그리고 DESTINATION이 같습니다. 그리고 이럴 때는 SOURCE 값이 DESTINATION에 들어가게 됩니다. 즉 69 -> 70이 될 것 입니다. 정상적으로 70으로 변경된 것을 확인할 수 있습니다. 기능2 만약 AL과 ..
인텔 문법을 기준으로 설명하겠습니다. CMP EAX, ESI CMP compare를 줄인 것으로 예상되고 말그대로 두 개의 인자 값을 비교한다는 의미입니다. 그 중에서도 위의 경우 eax를 esi 와 비교한다는 의미입니다. 이런 식으로 비교를 한 후에는 이 것의 결과에 따라서 점프를 합니다. 점프문은 다양한 종류가 있고 상황에 따라서 사용합니다. 달라지는 레지스터는 크게 두 가지 입니다. ZF 는 두 값이 같을 때 활성화 됩니다.CF 는 오른쪽이 클 때 1로 활성화됩니다.
- Total
- Today
- Yesterday
- rootkit
- vmware 오류
- gdb intel 변환
- GDB
- 디바이스
- 백도어
- LKM
- 레거시 드라이버
- breakpoint
- module
- 변환
- 드라이버
- gdb명령어
- gdb intel
- Intel
- VMware
- backdoor
- PNP 드라이버
- IRP
- DriverEntry
- 모듈
- 리눅스 모듈
- vmware cannot connect to the virtual machine
- gdb 명령어
- 루트킷
- BP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |