首页
社区
课程
招聘
[求助]OD的这个功能是怎么实现的?
发表于: 2006-12-22 11:00 5337

[求助]OD的这个功能是怎么实现的?

2006-12-22 11:00
5337
请教各位:
最近在弄动态内存.是个game  先用内存搜索工具搜到数值的内存位置
OD附加上.下这个地址的内存写入断点.F9 回到game 让数值改变一下
此时OD断下.代码如下
006B4B11              JLE SHORT ElementC.006B4B2A
006B4B13              MOV EDX,EBP
006B4B15              MOV DWORD PTR SS:[ESP+18],EAX
006B4B19              SUB EDX,EDI
006B4B1B              MOV EBX,DWORD PTR DS:[ECX]
006B4B1D              MOV DWORD PTR DS:[EDX+ECX],EBX //断在这
反复实验了几下发现都是断在这里!这里就是程序的地址一般不回改变是吗?
下面问题开始.断下来后  在里006B4B1D右击 选择 数据窗口中跟随--=菜单下的内存地址.此时的内存地址就是想要的地址数值.测试了几次发现这个内存地址是变化的,sorry 是动态内存.
我现在就是想问一下OD这个功能是怎么实现的?就是跟随的内存地址?
能否用delphi写一个这样的功能.
我的目的就是先到程序段的006B4B1D  然后来个OD的跟随内存地址
此时就可以得到正确的数值了!~~

不知道我的问题能不能行得通~!还是很异想天开?
麻烦各位了````
请问怎么实现
谢谢   

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 257
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
看过好些人这样问了,我感觉方法不太对,不要往这方面下去了
2006-12-22 11:39
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
简单 OD先建一个循环调试体
然后 int3 GetThreadContext
或者使用4个调试寄存器 GetThreadContext
你用delphi写的时候最好把循环调试体放在新线程
2006-12-22 11:54
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
这个应该不难吧
做个内存补丁就可以了,先让它断在6B4B1D,两种方法(1.创调试进程,然后在那里设断点;2.创普通进程,在那里放EB FE)
然后GetThreadContext,获得Edx和Ecx的值
相加就是你想要的地址,然后你想读那个地址就ReadProcessMemory
想写就WriteProcessMemmory
2006-12-22 12:36
0
雪    币: 289
活跃值: (368)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
keymake 的内存注册  就是这样搞的
我上面说的那个  断下后积存器的EBP正好是内存地址
但是需要有一次中断用在game上似乎不太好?
那位达人,告诉小弟动态内存的搞法?
感谢了``
另外内存补丁似乎没有动态寻址好
内存补丁需要更改内存数据,那么game升级后会出现错误  OUT
期待大大们  给小黑弟 指到明路
2006-12-23 07:25
0
雪    币: 75
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
HOOK那地址。然后执行你的代码。获取值。然后返回!
2006-12-23 12:47
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
7
动态内存补丁建议你用cheat engine配合od搞. 很快的...
2006-12-23 14:22
0
雪    币: 214
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
向上回溯
006B4B1B              MOV EBX,DWORD PTR DS:[ECX]
006B4B1D              MOV DWORD PTR DS:[EDX+ECX],EBX //断在这

找出[ECX]来源,一直向上找
2006-12-24 09:02
0
雪    币: 216
活跃值: (2412)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
9
根本不用这么麻烦,找片空地自己加点代码,把数值写到固定位置。
2006-12-24 14:43
0
雪    币: 367
活跃值: (20)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
10
其实对于软件而言,有些区域的代码多次编译后的二进制代码是一样的,因为稳定的代码没必要老是去做修改

可以通过在内存中扫描特征码定位,然后修改
2006-12-24 17:20
0
雪    币: 89
活跃值: (214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
高手些啊!考验你们的时候到了!
看下面,下载下来让你们练手!
特别提供!
我想一般都破解不了,我是这么认为的。
破不了的再问我!~

软件下载地址:http://intercourse.love.topzj.com/thread-34703-1-1.html
2006-12-24 20:47
0
游客
登录 | 注册 方可回帖
返回
//