用什么软件可以修改exe,dll文件内的反汇编程序,如何修改,请高手指教

用什么软件可以修改exe,dll文件内的反汇编程序,如何修改,请高手指教,第1张

ollydbg调试和修改exe等文件内部指令,使用IDA生成稍显易读的逆向代码。两者结合效果比较好。前者用于运行调试,找到目标指令的位置,后者则是逆向前期用来分析

exe文件

内部结构的工具。

怎么改,不能一言蔽之。大概的原理可以告诉你

使用ollydbg,运行,点击菜单栏的打开,选择你的exe文件,运行,找到

main函数

的位置,设置断点,单步运行,知道找到你想找的指令的位置,更改该指令,注意要保证指令的总体大小不变,比如说原先该条指令的大小是4个字节,那么你可以使用4个NOP指令代替,大小不变,但是使用6个NOP或者3个NOP指令,总体大小就不同了,exe文件内部指令的

相对地址

都变了。

即最后的exe文件大小要不变,不然会损坏exe文件。。。

最后保存修改的内容。

不知道你有没有个大概的印象,

反汇编

本来就很耗时耗力,需要耐心和经验,还得看你的需求。

你可以上“

看雪论坛

”搜索相关的教程。

因为你修改的时候可能改变了原来程序的长度,结果导致整个程序数据的相对位置的变动,比如本来一个字节的数据EE,你修改的时候不注意改为FFF,整个程序长度发生变化,程序中数据位置也发生变化,但是指令的寻址地址没有变化,这样就导致很严重的错误,造成程序无法运行。还有可能就是你修改的地方时比较关键的部分。exe程序是不能随便改的,要修改先要备份。

只能反汇编,这种软件有很多的,如ollydbg,Win32Dasm等,可以把exe反向转成汇编代码。

也可以使用反向工程的软件,此类软件用起来都非常复杂,可以把一个exe反向转成一个代码工程。

一般情况下除了net、vb和java写的程序可以反编译成原始代码之外,c、c++、delphi等写的程序是无法反成可读的有效原始代码的。

首先你得清楚,微软的exe可执行文件(即PE文件,有PE规范定义)的特征,才能使用不同的反编译软件对exe进行反编译。

如今,exe一般分托管代码和非托管代码两类(托管代码是由C#等语言生成的NET运行时库支持运行的中间代码,不是CPU芯片可直接执行的二进制机器码;而非托管代码是CPU芯片看执行的机器码)

非托管代码反编译后,其实就是简单的将二进制机器码用汇编表示,所以是汇编语言。

托管代码反编译,好的反编译器直接将中间语言字节码反编译成高级语言代码,如C#

------------------------------------------------------

另外,在什么平台运行的exe正确反编译(需要选择正确的芯片结构)为同平台的汇编语言。

如嵌入式ARM芯片上运行的Win CE系统上的exe就应当正确反编译为ARM汇编

x86的就应当反编译为x86汇编。

VB 可以编译为两种格式:

Native /本地代码:可以用通用的反汇编工具反汇编,或部分反编译至 C 代码;

P-code /伪代码:目前尚没有 P-code 格式 EXE 的反汇编工具。

以上就是关于用什么软件可以修改exe,dll文件内的反汇编程序,如何修改,请高手指教全部的内容,包括:用什么软件可以修改exe,dll文件内的反汇编程序,如何修改,请高手指教、为什么一个可执行程序EXE在反汇编下修改后就变成一个不能运行的程序了、如何将.exe的可执行程序反编译成为C语言代码程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9471188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存