[가상화코드] 해결해야 하는 과제
2017. 12. 19. 00:44ㆍ0x03 Reversing Theory
728x90
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' 카테고리의 다른 글
OPCODE 테이블 설계 (0) | 2017.12.19 |
---|---|
가상화 CPU 테이블 설계 (0) | 2017.12.19 |
개인공부 _ 커널 조작에 관한 기본 개념 (0) | 2017.12.13 |
개인공부 (0) | 2017.12.11 |
GCC Asembler (0) | 2017.12.06 |