1
2
有一些工具可以反汇编本机Intel x86或x64可执行文件,并输出文本汇编指令,但由于在编译为本机代码时,原始源代码中的文本很少被保留,因此反汇编程序生成的文本很可能是机器生成的字母汤。机械上正确,但人性上胡言乱语。 您可以尝试将新的和旧的exe分解为asm文本,然后使用文本差异工具来比较asm文本之间的差异。这将有助于减少小更改创建巨大diff日志时产生的diff工具噪音,因为小更改会导致所有全局偏移在它之后发生更改。反汇编的asm文本应该具有更少的全局偏移依赖项。 残酷的事实是,如果你没有一个了解英特尔asm指令和Delphi编译器代码生成模式的人,即使是这个反汇编步骤也不太可能产生太多有用的信息来帮助你理解为什么这两个ex的大小不同。在一个exe大小为500k的非平凡应用程序中,10k的差异可能是由使用不同的编译器选项编译引起的,例如使用堆栈帧与删除堆栈帧,或者在调试模式与非调试模式下编译。 即使在新的exe中添加对Writeln()的引用,也可能占到这10k的大部分——RTL中的文本IO例程会智能地链接到你的exe之外,除非有人使用它,而触摸Writeln会接触到RTL内的整个支持例程林。如果旧的exe没有使用Writeln,但新的exe使用了,那么新的exe将携带Writeln支持例程,我隐约记得这些例程的权重是“几个K以上”。 |
2
1
您可以使用 涡轮差速器 从…起 http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=tool&name=turbodiff 查看两个可执行文件之间的差异。当然,您还需要的免费软件版本 IDA 5.0版 ,您可以从下载 http://www.hex-rays.com/products/ida/support/download_freeware.shtml |
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
nader · 如何使用delphi在web上提交表单 6 年前 |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |