我不熟悉编译器的魔力。对我而言,将人类可读代码(或不可读的组装指令)转换成机器代码的行为对于我来说是火箭科学与巫术的结合。如何手动读取/写入.exe机器码?
我会缩小这个问题的Win32可执行文件(.exe)的主题。当我在专门的查看器中打开这些文件时,我可以找到散布在各个地方的字符串(通常为每个字符16b),但剩下的只是垃圾。我认为不可读部分(多数)是机器代码(或者可能是资源,比如图像等)。
是否有阅读的机器代码的任何直接的方式?打开exe作为文件流并逐字节读取它,如何将这些单独的字节转换为Assembly?在这些指令字节和汇编指令之间是否有直接映射?
.exe是如何编写的?每条指令有四个字节?更多?减?我注意到一些应用程序可以像这样创建可执行文件:例如,在ACD中请参阅您可以将一系列图像导出为幻灯片。但这不一定是SWF幻灯片,ACD See也可以制作EXEcutable演示文稿。这是如何完成的?
我怎么能理解一个EXE文件里面发生什么事情?
ACDSee技巧将使用预编译程序并编辑其资源。请参阅http://www.silurian.com/win32/peformat.htm并使用Process Explorer(http://live.sysinternals.com/procexp.exe)进行操作。 – Mark 2009-04-16 14:39:54
谢谢,这看起来不错。和进程浏览器真棒。几个月前开始使用它,这真是太神奇了。每次我运行它,我都不禁想知道他们是怎么做的? – 2009-04-16 14:48:06
这里只是一个延迟的评论;你最终怎么设法继续?你设法走得很远吗? – dreamlax 2009-08-21 05:48:52