0x03 Reversing Theory(50)
-
코드 가상화 개인 공부 [0x02]
두 번째로 살펴볼 도구는 Code Virtualizer 이다. 이 친구는 개인적으로 처음 보는 친구여서 조금 더 집중해서 문서를 읽었다. 우선 프로그램에 대한 설명을 하자면 Oreans사의 코드 난독화 시스템이면서 최소한의 시스템의 자원으로 리버스 엔지니어링(리버싱)으로 부터기술 유출 등에 민감한 코드를 보호한다. Code Virtualizer는 intel cpu가 알아 듣는 본래의 instruction을 내부의 가상머신(VCPU)이 이해할 수 있는 가상 명령어로 변경을 한다고 한다. 이 도구는 32bit, 64bit의 PE파일을 보호할 수 있다. PE파일은 exe, dll, ocx, activeX, control, device dirver etc 문재인 정부에서 ActiveX를 폐지하겠다는 공지를 며칠..
2017.12.20 -
코드 가상화 개인 공부 [0x01]
코드 가상화 공부를 이어가보자.해당 글은 코드 가상화 기법이 적용된 악성코드 분석 방법 연구 위탁과제 최종보고서 라는 파일명을 지닌 PDF문서를 기반으로 공부하고 복습하기 위해 작성하였다. 우선 사람들이 잘 아는 Themida Protector에 대한 내용이다. Themida는 주로 게임 및 상용프로그램에 사용되는 프로텍터이다. 더미다는 여러가지 기능이 내포되어 있다. Anti-Debugger Detection커널 디버거 및 소프트웨어 디버거의 탐지 시 어플리케이션을 보호 할 수 있다. Anti Dumper프로그램은 메모리안에 상주하게 된다. 그렇다면, 우리는 메모리를 들여다 보면 프로그램의 정보를 볼 수도 있다는 말이 된다.크래커는 보통 메모리 덤퍼를 이용하여 메모리 내용을 디스크로 덤프하여 보호코드를..
2017.12.20 -
[가상화 코드 진행 1] 1차적 코드
보호되어 있는 글입니다.
2017.12.19 -
OPCODE 테이블 설계
보호되어 있는 글입니다.
2017.12.19 -
가상화 CPU 테이블 설계
보호되어 있는 글입니다.
2017.12.19 -
[가상화코드] 해결해야 하는 과제
1. 기존의 INTEL 어셈 코드를 변경시켜라 2. 가상 CPU를 설계하라 3. 만들어진 가상 CPU를 타켓 프로그램에 넣었을 때 런타임 에러가 나지 말아라. 반드시 가상cpu와 실제 cpu는 공존해야 한다. 어셈코드를 변경 시키기 위해 나만의 테이블을 작성해야 한다. 섹션을 별도로 만들어 주어야 한다. 가상CPU에서는 스택을 구성해야한다.(코드 처리 위함)가상CPU에서는 데이터를 구성해야한다. .VCODE섹션에서 opcode를 하나 씩 꺼내어 해당 opcode handler 호출을 담당하는 control code와 해당 명령어를 처리하는 루틴인 opcode handler를 작성해야 한다. (coding) 현재 cpu테이블과 opcode테이블 작성 완료. 상당히 어렵다 이때까지 공부한 것과 ..
2017.12.19