首页
社区
课程
招聘
[求助]内存补丁
发表于: 2008-11-18 15:35 6526

[求助]内存补丁

2008-11-18 15:35
6526
软件做补丁难题!
0040548A     E8 81BFFFFF           call sendtb5_.00401410
0040548F     8B45 A8               mov eax,dword ptr ss:[ebp-58]     ; 这里断下看
00405492     8B4D F4               mov ecx,dword ptr ss:[ebp-C]
00405495     64:890D 00000000      mov dword ptr fs:[0],ecx
0040549C     59                    pop ecx
0040549D     5F                    pop edi
0040549E     5E                    pop esi
0040549F     5B                    pop ebx
004054A0     8BE5                  mov esp,ebp
004054A2     5D                    pop ebp
004054A3     C3                    retn

0040548F     8B45 A8               mov eax,dword ptr ss:[ebp-58]
堆栈 ss:[0012EDF0]=00000014  //就是在这里.把这个值改成0F4240.软件功能全部正常.
eax=00000001

现在的问题就是这个地址0012EDF0里面的00000014不是固定的,我试过做内存补丁不行.请瓿那个兄弟知道这个补丁要杂做.

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
这个是改那个内存地址的:
0040548F . /EB 13 jmp short 004054A4 ; SmSrv.004054A4
00405491 |90 nop
00405492 > |8B4D F4 mov ecx, dword ptr ss:[ebp-C]
00405495 . |64:890D 00000000 mov dword ptr fs:[0], ecx
0040549C . |59 pop ecx
0040549D . |5F pop edi
0040549E . |5E pop esi
0040549F . |5B pop ebx
004054A0 . |8BE5 mov esp, ebp
004054A2 . |5D pop ebp
004054A3 . |C3 retn
004054A4 > \C745 A8 40420F00 mov dword ptr ss:[ebp-58], 0F4240
004054AB . 8B45 A8 mov eax, dword ptr ss:[ebp-58]
004054AE .^ EB E2 jmp short 00405492 ; SmSrv.00405492

这个直接改eax的值的:
0040548F . /EB 13 jmp short 004054A4 ; SmSrv.004054A4
00405491 |90 nop
00405492 > |8B4D F4 mov ecx, dword ptr ss:[ebp-C]
00405495 . |64:890D 00000000 mov dword ptr fs:[0], ecx
0040549C . |59 pop ecx
0040549D . |5F pop edi
0040549E . |5E pop esi
0040549F . |5B pop ebx
004054A0 . |8BE5 mov esp, ebp
004054A2 . |5D pop ebp
004054A3 . |C3 retn
004054A4 > \B8 40420F00 mov eax, 0F4240
004054A9 .^ EB E7 jmp short 00405492 ; SmSrv.00405492

这个软件还要去广告啥的。。。
上传的附件:
2008-11-18 16:08
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
这需要自己写一个程序。

我给你写了个,放在程序同目录下运行就行了。

按照众多说的写的。

试试,有什么问题请反馈。
上传的附件:
2008-11-18 17:19
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
4
哇,问题简直跟我一模一样,我在破王牌阿里
2008-11-18 19:26
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
5
有那么多软件要破啊,中国的破界需要你们。
呵呵。
2008-11-18 20:15
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢~~~~~~~~~~~~~~~~~~~~~~
2008-11-19 18:43
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
7
我的loader好不好使,测试后请反馈一下,谢谢。
2008-11-19 18:57
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
请问,如果下次运行时0040548F地址都变了,如何补丁,用什么补丁工具?
2008-12-12 10:04
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
9
万变不离其宗,即使程序的代码地址是动态变化的,总有其不变的东西,否则也不成为程序了。

多分析分析,找到它不变的东西,用一些启发式的技巧,总能找到要找的东西。

没有绝对的东西,只是难度大小的问题。
2008-12-12 10:59
0
雪    币: 1564
活跃值: (3572)
能力值: ( LV13,RANK:420 )
在线值:
发帖
回帖
粉丝
10
我用E写的补丁,去了后面的尾巴。现在正在卖哩!
2008-12-12 13:35
0
雪    币: 427
活跃值: (65)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
你不会是在网店里卖RMB吧?
2008-12-12 13:38
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
呵呵。。。卖就不太好了
2008-12-12 13:43
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
软件运行时代码没有变,但代码是软件运行时解压产生的,代码对应的地址每次都是不同的,如果不给软件脱壳,如何进行内存补丁,用何工具,请指教,不胜感激!
2008-12-14 10:01
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
14
那就试试在解码的位置让程序停下来,读取寄存器找到被解码代码的地址,然后再用偏移量换算出需要patch的地址。
2008-12-14 12:36
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我先试试,先感谢楼上.
我会继续向你们请教的.
2008-12-17 07:42
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16


请问14楼,还是没有办法找到解压点,因为软件是使用Visual Stadio 2005 C#编写的,软件中有用Sharpziplib 带Checksum CRC32,编译连接后产生exe和很多动态连结库,运行时需要注册文件,调试exe文件,软件一边运行一边解压出来,代码在内存中的地址又不同.
而且我没有办法调试时看到软件运行时的解压过程.
附件中是两次调试时的要补丁的截面,您是否能指导小弟.

感谢
上传的附件:
2008-12-17 21:48
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
17
啊!!!

C#的,是托管的代码?

我可不会这个。对.net的东西我还没机会研究,暂也没精力去学习。

不好意思,这个帮不上了。
2008-12-17 22:30
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
人家拿去卖别人         我们也没办法啊 谁怪我们没技术呢```你说是把````
2008-12-17 23:27
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
请问14楼,.NET程序是动态分配内存,每次运行时地址都不一样,对于汇编指令,好象没法补丁,但exe程序加载dll动态连接库后,用补丁工具改内存中的IL码(IL码构成dotNET执行文件何动态连接库的assembly),使用profiling API可以实现这个内存补丁,还有其他类似的工具么,而且是否有对于.NET windows XP资源管理器中运行的程序进行profiling API例子么(现在的例子全部在命令行中的)?
2009-1-17 15:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
是不是 破解用的
2009-1-17 21:55
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
是一个.net编写的工具软件,想学习内存补丁,对于profiler API的应用,请问有何建议?不是在命令行中运行的
2009-1-18 11:05
0
游客
登录 | 注册 方可回帖
返回
//