使用C运行X86 32位组件的模拟



所以我正在寻找的是找不到组装模拟器

基本上我要做的是翻译组件到c

尽管我有一个带有" F5"的iDA Pro,但是通常,我试图做仿真方法

我手工做了这个示例以证明我的想法:

mov %eax, 10
add %eax, 5
jmp foo

我想直接将其转换为模拟C程序 this

unsigned v_eax = 0;
v_eax = 10;
v_eax += 5;
goto foo;

我认为这很像一个装配模拟器,它具有

之类的过程
assembly --> running in a CPU simulator in C --> output the results

但是我想做的就是这样

assembly --> translate into a c source code --> compile --> run to get the results

快速搜索后,我认为本文的方法与我要做的事情相似(但是我没有任何分析工作,只需翻译一些简单的汇编代码)

任何人都可以在这个问题上提供一些帮助。?

谢谢!

您在寻找什么帮助?如果您有特定的问题,请提出这些问题。

看起来您已经有了一个总体想法:设置一堆变量来表示寄存器,设置一个大数组来表示内存,实现子例程或宏(在线生成的代码块)代表每个指令并使用这些资源做正确的事,实现其他宏或子例程,这些宏或子例程是包装器或等同于每个操作系统调用或外部库功能的程序(最重要的是I/O),写一个"加载程序"对于可执行文件,然后浏览程序将指令转换为这些宏。确保正确修复了goto/呼叫地址,并希望像赫克一样,程序员保留了数据块和代码块不同。将其全部调试,应该可以工作。非常缓慢,但这就是您要的。

最新更新