DLL动态地址补丁的特殊情况,召唤大神!!!
Executable modules, 条目 4基址=02650000
大小=0026C000 (2539520.)
入口=02668E9F SYS.<ModuleEntryPoint>
名称=SYS
文件版本=2.13.2013.4
路径=D:\测试\SYS.DLL
0267C262 0000 add byte ptr ds:,al
0267C264 0000 add byte ptr ds:,al
0267C266 0000 add byte ptr ds:,al
0267C268 52 push edx ; 这里开始补码
0267C269 6967 68 742CD7A>imul esp,dword ptr ds:,0>
0267C270 B2 E1 mov dl,0xE1
0267C272 B3 C9 mov bl,0xC9
0267C274 B9 A62C7C5B mov ecx,0x5B7C2CA6
0267C279 CA B13A retf 0x3AB1
.
. ;中间太长,省略。
.
0267C2D0 B2 CE mov dl,0xCE
0267C2D2 47 inc edi
0267C2D3 67:0000 add byte ptr ds:,al
0267C268 - 02650000 = 2C268 <----偏移
52696768742CD7A2B2E1B3C9B9A62C7C5BCAB13A3838313436313637357C5BBEB23A71696E676361697C5BB8E63ABBB6D3ADCAB9D3
C3C7E0B2CBB3E6BDC5B1BE7C5BB1BE3A3339347C5BD6B73A7C5BB7BD3A307C5BCFD63A3136313435393837357C5BBFAA3A3100B2CE
4767
02657F2D 8BE5 mov esp,ebp
02657F2F 5D pop ebp
02657F30 C2 0C00 retn 0xC
02657F33 68 68C26702 push SYS.0267C268 ; 这里要 push 补码的动态地址
02657F38 58 pop eax
02657F39 C2 0800 retn 0x8
02657F3C C745 FC 0000000>mov dword ptr ss:,0x0
02657F43 C745 F8 0000000>mov dword ptr ss:,0x0
02657F33 - 02650000 = 7F33 <----偏移
6868C2670258C20800
还是上图吧,简洁点。。。
DLL地址每次都会变,如果只是简单的修改jmp或NOP掉某语句的话,小生的这个补丁源码很容易就搞定了,可是现在这个测试例子需要补码,而且还要push 补码后的地址,我这个易语言渣渣想了下也只能在这里修改试看看了,修改2 = 还原为字节集 (“68” + 到文本 (地址1) + “58C20800”),结果还是不行,来位大神拯救下我这个E渣渣吧{:5_187:} @Crook @亚轩 @西西 @雨季 @520Kelly @童真丶
你那个到文本就错了
修改2 = { 104 } + 到字节集 (到整数 (地址1)) + { 88, 194, 8, 0 }
或者是修改2 = { 104 } + 到字节集 (到整数 (地址1+十六进制文本到整数 (“58C20800”)))
这样试试 师傅你就不能大方点的给点HB嘛好长的问题呢
飘零云的么,PYG补丁工具试试吧。
这个问题我前天也没研究明白 问了鲨鱼师傅最后我也没弄明白 就是不知道那个动态地址怎么写到另一处要写入的数据当中 这个数值还得是反着写入的
Crook 发表于 2015-2-13 11:14
你那个到文本就错了
修改2 = { 104 } + 到字节集 (到整数 (地址1)) + { 88, 194, 8, 0 }
或者是修改 ...
第一次感受到解答那么快,那么神速,那么给力!{:5_191:}
别闹了我还要叫你师傅呢{:5_188:}
对了,这么写不行哦,直接报错。。。
修改2 = { 104 } + 到字节集 (到整数 (地址1+十六进制文本到整数 (“58C20800”)))
阿菜 发表于 2015-2-13 11:48
飘零云的么,PYG补丁工具试试吧。
试过了PYG的补丁,劫持dll补丁也不行的,这特殊情况工具不一定好用{:5_116:}
不懂怎么打DLL的补丁,有个视频就好了、。。。
写法问题吧、我就会易语言的写内存字节集、、
页:
[1]