반응형

보안 공부/System 보안 12

어셈블리어 AND, SUB, TEST, CMP 차이

AND 비트연산을 수행한다. Operand 값을 2진수로 바꾸고, 비트 연산을 통해서 양쪽다 1인 값만 참이된다. SUB 마이너스 기능을 수행한다. SUB a1, a2 형식이면 a1의 값을 a2만큼 감소한 후 결과값을 a1에 저장한다. TEST 첫번째 Operand와 두번째 Operand를 AND 시킨다. 이 연산의 결과는 ZF에만 영향을 미치고 Operand에 영향을 미치지 않고 버려진다. 두 Operand가 모두 0인지 아닌지 판단 가능하다 CMP 첫번째 Operand와 두번째 Operand를 뺀다. 이 연산의 결과는 ZF에만 영향을 미치고 Operand에 영향을 미치지 않고 버려진다. 두 Operand가 같은지 판단 가능 하다

어셈블리 기초 _ 명령어 모음

Reversing 분석을 하다보니 어셈 명령어가 헷갈려서 다시한번 정리하고 올려본다.. - 데이터 이동 명령어 mov - Move mov 명령어는 두번째 인자의 주어진 데이터(레지스터, 메모리 주소, 상수값)을 첫번째 인자에 복사합니다. 주의할 점은, 레지스터끼리의 데이터 이동은 가능하지만, 메모리 주소간의 데이터 이동은 할 수 없다. 이러한 경우에 메모리 간 데이터 복사를 위해서는 복사하고자 하는 데이터를 먼저 특정 레지스터로 이동 후 이동해야 한다. mov eax, ebx — ebx의 데이터를 eax에 복사한다. mov byte ptr [var], eax — eax를 var가 가르키는 주소로 복사한다. push — Push stack push 명령어는 현재 ESP 레지스터가 가지고 있는 스택 메모리 ..