constWORLDant

[가상화코드] 해결해야 하는 과제 본문

0x03 Reversing Theory

[가상화코드] 해결해야 하는 과제

data type ConS_tanT 2017.12.19 00:44

1. 기존의 INTEL 어셈 코드를 변경시켜라


2.  가상 CPU를 설계하라 


3.  만들어진 가상 CPU를 타켓 프로그램에 넣었을 때 런타임 에러가 나지 말아라. 


< 핵심 >


반드시 가상cpu와 실제 cpu는 공존해야 한다.


어셈코드를 변경 시키기 위해 나만의 테이블을 작성해야 한다.


섹션을 별도로 만들어 주어야 한다. 


가상CPU에서는 스택을 구성해야한다.(코드 처리 위함)

가상CPU에서는 데이터를 구성해야한다.


.VCODE섹션에서 opcode를 하나 씩 꺼내어 해당 opcode handler 호출을 담당하는 control code와 해당 명령어를 처리하는 루틴인 opcode handler를 작성해야 한다. (coding)


현재 cpu테이블과 opcode테이블 작성 완료. 


상당히 어렵다 이때까지 공부한 것과 차원이 다른 것 같다. 


새로 알게 된 개념 : bit field !! 


운영체제든 CPU든 관련 코드를 직접 작성하시는분들은 정말 대단한 분들이다. mov 핸들러 배껴쓰면서 이해하기도 너무 힘든걸..? 

그래도 이 구조체가 왜  이 변수에서 쓰이는지에 대한 정보는 확실하게 이해 했다.


- 지금 까지 진행 한 목록 : mov 핸들러 따라 해보기 - 

'0x03 Reversing Theory' 카테고리의 다른 글

코드 가상화 개인 공부 [0x02]  (0) 2017.12.20
코드 가상화 개인 공부 [0x01]  (0) 2017.12.20
[가상화코드] 해결해야 하는 과제  (0) 2017.12.19
개인공부 _ 커널 조작에 관한 기본 개념  (0) 2017.12.13
개인공부  (0) 2017.12.11
GCC Asembler  (0) 2017.12.06
0 Comments
댓글쓰기 폼