首页
社区
课程
招聘
[讨论]模拟x86指令有什么好的代码风格
发表于: 2016-4-27 12:35 2738

[讨论]模拟x86指令有什么好的代码风格

2016-4-27 12:35
2738
小弟写的ida插件。现在能虚拟出程序原始的内存情况了。例如 mov eax,[00400000]这种。可以模拟出[00400000]里面的原始内存了(还提供了统一的内存访问和内存虚拟化接口,32位机里面的内存分布方式基本都能虚拟了)。但是在虚拟x86指令的时候老出问题,一开始例如解析一条  mov eax,ebx 指令,代码是这种样子

VOID simulate_X86_operation(DISASM MyDisasm){//模仿mfc的一大堆handle
         handle_General_Operation(MyDisasm);
         handle_SSE_Operation(MyDisasm);
         handle_VMX_Operation(MyDisasm);
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
};
VOID handle_General_Operation(DISASM MyDisasm){
         if(不是常用指令)return;   //自动判断是不是自己可以处理的指令
         handle_mov_gereral_reg_comma_general_reg(DISASM MyDisasm);
         handle_push_reg_to_stack(DISASM MyDisasm);
         XXX
};
VOID handle_mov_gereral_reg1_comma_general_reg2(DISASM MyDisasm){
        UINT tmp=get_general_reg2(xxx);
        set_eax_according_UINT(tmp);
}
但是发现这种handle越写越大,越写越多,还好难维护啊。。求教有什么好的方式来判断指令类型啊。
顺便求一个实习地方。。小弟本科应届。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//