본문 바로가기

Malware Analysis

(18)
EFLAGS - 제어 플래그, 상태 플래그 EFLAGS 레지스터는 CPU의 동작을 제어하거나 연산 결과를 반영하는데 사용되는 레지스터들이다. EFLAGS 영역은 리버스 엔지니어링에 핵심적인 추적을 위한 용도로 자주 사용되므로 꼭 숙지해야한다. [제어 플레그] 제어 플레그는 CPU의 동작을 제어하는 플레그이다. Direction Flag(DF) 스트링 조작을 할 때에 이 플래그가 0이면 0번지를 나타내는 레지스터 값이 자동적으로 증가하고 1이면 레지스터값은 자동적으로 감소한다. Interupt Flag(IF) 플래그가 0일때 INTR 단자로부터의 외부 인터럽트 요구는 무시하고, 1일 때는 외부 인터럽트 요구를 받아들인다. Trap Flag(TF) 플래그가 0일때 CPU는 보통대로 명령을 실행하지만, 1일 때는 CPU는 한 명령을 실행할 때마다 자동..
IDA 를 이용한 C언어 디스어셈블(1~10) IDA란?? IDA는 Interactive Disassembler의 약자로 디스어셈블러이다. 따라서 주 기능역시 디스어셈블이다. ※ 특징 - IDA에서 작업할 때는 원본 실행파일이 아닌 idb라는 데이터베이스에 작업을 하게 된다. 따라서 IDA에서 어떠한 작업을 하더라도 원본 실행파일에 영향을 주지 않는다. idb파일만 있다면 원본파일이 없어도 분석이 가능하다. - IDA에는 되돌리기 기능이 없다. 따라서 뭔가 큰 실수로 원래되로 되돌리기 위해서는 IDA를 종료할 때 DON'T SAVE the database에 체크를 해야한다. - IDA는 많은 단축키가 있기 때문에 아무생각 없이 키를 눌렀다가 난처한 상황이 일어날 수 있다. IDA를 이용해 C언어 300문제를 디스어셈블 하겠습니다. 또한 알게된 IDA..