a1100330 - 2014/6/5 16:12:58
64位上的特征码好像需要加入挂载模块的信息,才能通过特征码搜索,而现在又出现了一个问题
Fbas模拟器,特征码 C1E80C8BF98BD903C0,26|5(libburn.dll) 会挂载到 riched20.dll,是哪错了吗?
另外在控件上可否通过特征码来修改数据?控件附加数据的使用,可以详细介绍么 (╯▽╰)
a1100330 - 2014/6/5 16:20:49
710194A0 8B4424 08 mov eax,dword ptr ss:[esp+0x8]
710194A4 56 push esi
710194A5 8B7424 10 mov esi,dword ptr ss:[esp+0x10]
710194A9 2BF0 sub esi,eax
710194AB C1EE 0C shr esi,0xC
710194AE 46 inc esi
710194AF 74 55 je Xlibburn.71019506
710194B1 8B4C24 14 mov ecx,dword ptr ss:[esp+0x14]
710194B5 8B5424 08 mov edx,dword ptr ss:[esp+0x8]
710194B9 53 push ebx
710194BA 55 push ebp
710194BB 57 push edi
710194BC C1E8 0C shr eax,0xC
710194BF 8BF9 mov edi,ecx
710194C1 8BD9 mov ebx,ecx
710194C3 03C0 add eax,eax
710194C5 83E7 01 and edi,0x1
710194C8 83E3 02 and ebx,0x2
710194CB 83E1 04 and ecx,0x4
710194CE 03C0 add eax,eax
710194D0 85FF test edi,edi
710194D2 74 09 je Xlibburn.710194DD
710194D4 8B2D 10CD5271 mov ebp,dword ptr ds:[0x7152CD10] ; 基址1
710194DA 891428 mov dword ptr ds:[eax+ebp],edx
710194DD 85DB test ebx,ebx
710194DF 74 09 je Xlibburn.710194EA
710194E1 8B2D 14CD5271 mov ebp,dword ptr ds:[0x7152CD14] ; 基址2
710194E7 891428 mov dword ptr ds:[eax+ebp],edx
710194EA 85C9 test ecx,ecx
710194EC 74 09 je Xlibburn.710194F7
710194EE 8B2D 18CD5271 mov ebp,dword ptr ds:[0x7152CD18] ; 基址3
710194F4 891428 mov dword ptr ds:[eax+ebp],edx
710194F7 83C0 04 add eax,0x4
710194FA 81C2 00100000 add edx,0x1000
71019500 4E dec esi
71019501 ^ 75 CD jnz Xlibburn.710194D0
71019503 5F pop edi
71019504 5D pop ebp
71019505 5B pop ebx
71019506 5E pop esi
71019507 C3 retn
银河漫步 - 2014/6/5 17:07:37
多平台架构的模拟器通常不好找基地址
一般不同平台游戏会不一样
a1100330 - 2014/6/5 17:29:10
回复 3楼银河漫步的帖子在同一游戏下,每次打开模拟器运行的基址都不一样,所以才想要用特征码
关键是现在这个特征码是直接挂载到riched20.dll上,而不是指定的libburn.dll
银河漫步 - 2014/6/5 17:45:28
特征码一般应该是主程序的模块地址
而不是插件
插件是需要的时候才调用的东西
内存是临时分配的
a1100330 - 2014/6/5 19:37:15
回复 5楼银河漫步的帖子这应该不是插件,因为少了这个DLL,整个模拟器都运行不起来,类似于mame模拟器的mame.dll吧?
下面的是模拟器和游戏,可否研究下?
http://pan.baidu.com/s/1i3iN4ih
银河漫步 - 2014/6/5 21:12:25
街机我不找基地址的
用模拟器自带的修改程序比较方便
还可以debug玩
a1100330 - 2014/6/5 21:45:46
天枫十一郎 - 2014/6/6 16:45:18
Fbas模拟器,特征码 C1E80C8BF98BD903C0,26|5(libburn.dll) 会挂载到 riched20.dll,是哪错了吗?
按你的设置理论上特征码只会在libburn.dll中查找.如果找不到就为空.所以你应该是没找到特征码.不知道你怎么确认在riched20.dll中?
a1100330 - 2014/6/6 17:17:23
回复 9楼天枫十一郎的帖子用CE的内存浏览器输入CM上显示的内存起始地址,CE内存浏览器就会显示当前所在的模块了,当然也可以直接输入模块名字
CM和CE都能搜索这个特征码,若不加上5(libburn.dll),那就真的返回空了
今天打开,又加载到另一个DLL上去了。。
可否像CE那样?在控件上直接把基址定义成(模块+偏移)呢?因为在CE上有一个很不错的功能,取模块+偏移为基址,每次打开都会重新计算这个模块的地址,制作也会简单很多
而直接用数据型的基址的做修改器,重启游戏后这个基址还是会变
模块+偏移为libburn.dll+82FCCC
计算出基址为5F39FCCC
天枫十一郎 - 2014/6/7 0:46:30
可能是有BUG.因为你指定了模块名称里面的特征码后它就是在里面找的.你可以上传模拟器及其你设置的基址设置我来看下.
以上查找的特征码比固定偏移地址更准确才对.当然使用模块地址+偏移也有很多好处.先记录下来.以后更新CML的时候把它加进去.
a1100330 - 2014/6/7 12:10:46
回复 11楼天枫十一郎的帖子也可能是WIN7 64位系统问题?
我之前做的最终幻想3修改器,也是动态基址,若只加特征码不加FF3_Win32.exe模块的话,单独的特征码也是无法定位的,在32位下应该是不用加模块的吧
模拟器与游戏,配置的话,我好像只改了键位用手柄玩
http://pan.baidu.com/s/1dD1S2aP
a1100330 - 2014/6/8 0:35:32
回复 11楼天枫十一郎的帖子刚发现原来有PC_AA这个插件可以实现 (╯▽╰)
ckyun - 2014/11/2 9:37:11
回复 10楼a1100330的帖子附加地址写 62(libburn.dll+82FCCC)
ckyun - 2014/11/2 9:39:29