动态地址问题.
软件是非静态编译的.补丁地址是动态的.一般的是补丁地址减去基址得到偏移.
我看论坛这类的教程都是前面几个固定的这样比较好找.
下面这个我不知道用那个基址去算了.
二次数据
二次数据
下载地址.http://pan.baidu.com/s/1eQ2b1V8
注册宝的.
编号:Z1014073 KEY:819D47B3-1A97-49E2-86E9-BEC81D168FA9 效验码:498713
这是 易原体- -你那补丁的地址明显有问题 走走停停 发表于 2015-6-21 21:51
这是 易原体- -你那补丁的地址明显有问题
那这补丁地址怎么找? 数据都是对的. 基址应该是程序的基址。就像楼上的大神说的。你图中指向的是易源体。不过这程序我在虚拟机下调试中不到z10能力有限帮不到你了。其实你直接用易语言写补丁只要算出偏移地址就能直接写补丁了。易语言会自动找出程序的基址然后加上你找到的偏移地址。再加上要修改的数据就ok了
论坛也有源码和配备的模块。 pnccm 发表于 2015-6-22 10:56
基址应该是程序的基址。就像楼上的大神说的。你图中指向的是易源体。不过这程序我在虚拟机下调试中不到z10 ...
用00401000和补丁地址去算偏移.这样每次偏移都不同. S丶H丿倾城 发表于 2015-6-22 11:09
用00401000和补丁地址去算偏移.这样每次偏移都不同.
不是说用00401000去做基址。你只要能找到偏移地址。用易语言枚举程序进程就可以找到基址。 pnccm 发表于 2015-6-22 11:11
不是说用00401000去做基址。你只要能找到偏移地址。用易语言枚举程序进程就可以找到基址。
你说的偏移地址我是不懂.那个Z10有时候能搜到. 本帖最后由 pnccm 于 2015-6-22 11:25 编辑
S丶H丿倾城 发表于 2015-6-22 11:16
你说的偏移地址我是不懂.那个Z10有时候能搜到.
我试了两个虚拟系统都不行。{:6_216:}。今天论坛上传不了图片。汗。
系统进程 = 取系统进程列表 ()' 取所有进程
进程数 = 取数组成员数 (系统进程)' 取所有进程有多少个赋值给进程数
.计次循环首 (进程数, 计次)
.如果真 (系统进程 [计次].进程名称 = “老A搜词精灵.exe”)' 如果进程名称里检测到这个”老A搜词精灵.exe“往下执行
进程ID取模块 (系统进程 [计次].进程标识符, m1)' 上面检测到程序后这里就取程序的模块信息
.计次循环首 (取数组成员数 (m1), p)
.如果真 (到文本 (m1 .模块文件名) = “老A搜词精灵.exe”)' 需要逆向的程序名
基址 = m1 .base' 找到的基址赋值给“基址”这个变量
地址1 = 基址 + 十六进制文本到整数 (“630A”)' 减掉基址的DLL地址偏移
修改1 = 还原为字节集 (“EB54”)' 需要修改的数据
写内存字节集 (系统进程 [计次].进程标识符, 地址1, 修改1)' 写内存数据,对应上面的基址+修改的地址
.如果真结束
.计次循环尾 ()
直接复制代码你看下
pnccm 发表于 2015-6-22 11:21
我试了两个虚拟系统都不行。。今天论坛上传不了图片。汗。
这个源码我有.可能我不会用吧.“减掉基址的DLL地址偏移”这里便宜都不知道怎么去减.
页:
[1]