左右分栏
社区应用
帖子
相册
日志
群组
热榜
分享
记录
社区服务
名人堂
积分兑换奖品
银行
统计排行
会员列表
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
转帖工具
您好,欢迎光临本站!
登录
注册新用户
下拉
用户名
UID
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
高级
我的快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
论坛
群组
我的空间
官方微博
新人帮助
技术频道
下载频道
总版规
红豆奖励计划
积分兑换奖品
安全
程序开发
数据库
站长学院
网络
操作系统
读书频道
redblack
春意盎然
水墨江南
紫色梦幻
绿之印象
蓝色天空
黑色旋风
>
网络技术
>
【OD分析二叉树遍历案例技巧】找CALL和二叉树数据定位和编程(剑 ..
发帖
回复
返回列表
9199
阅读
3
回复
【OD分析二叉树遍历案例技巧】找CALL和二叉树数据定位和编程(剑网3为例)
[复制链接]
上一主题
下一主题
宫小沫
UID:245602
注册时间
2010-08-08
最后登录
2016-10-27
在线时间
354小时
发帖
1997
搜Ta的帖子
精华
2
黑豆
294
威望
7391
贡献值
0
交易币
0
红豆
2
访问TA的空间
加好友
用道具
论坛版主
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
发帖
1997
黑豆
294
威望
7391
贡献值
0
交易币
0
红豆
2
加关注
发消息
只看楼主
倒序阅读
0
发表于: 2014-07-05
光逆向可不行,还要会编程,本贴强大的二叉树算法遍历出了某youxi的技能属性、人物属性等信息。是新型算法逆向和编程的经典之作。现在的youxi有些不是传统的基址+偏移能搞出来的。而是二叉树算法,导致很多人找不到基址。那么就用二叉树算法遍历试试喽。
那么一般用二叉树的进程,其中的函数CALL也有一定的规律。不懂得请回帖。懂的可无视。
1、下面是OD找jianwang3函数CALL的技巧——以 剑网3为例
OD打开加载youxi,点菜单栏上“查看”-》“可执行模块”,选择“Jx3Client.exe”,要点两次才能真正的来到youxi领空
然后在OD主窗口里面点鼠标右键,“查找”-》“所有参考文本字串”
在搜索出来的窗口里面点鼠标右键,“查找文本”
如果你想找CALL,就填“KPlayerClient::Send”,然后在找到的项上双击,就来到了代码段
类似这样:
0042C690 /$ 51 push ecx
0042C691 |. A1 E8C25C00 mov eax,dword ptr ds:[0x5CC2E8]
0042C696 |. 53 push ebx
0042C697 |. 8B5C24 0C mov ebx,dword ptr ss:[esp+0xC]
0042C69B |. 55 push ebp
0042C69C |. 56 push esi
0042C69D |. 57 push edi
0042C69E |. 8BF9 mov edi,ecx
0042C6A0 |. 8B48 20 mov ecx,dword ptr ds:[eax+0x20]
0042C6A3 |. 33F6 xor esi,esi
0042C6A5 |. 894B 02 mov dword ptr ds:[ebx+0x2],ecx
0042C6A8 |. 39B7 98230000 cmp dword ptr ds:[edi+0x2398],esi
0042C6AE |. 897424 10 mov dword ptr ss:[esp+0x10],esi
0042C6B2 |. 75 41 jnz XJX3Clien.0042C6F5
0042C6B4 |. 68 74CC5600 push JX3Clien.0056CC74 ; ASCII "KPlayerClient::Send"
0042C6B9 |. 68 BE040000 push 0x4BE
0042C6BE |. 68 38BF5600 push JX3Clien.0056BF38 ; ASCII "m_piSocketStream"
0042C6C3 |> 68 6C875600 push JX3Clien.0056876C ; ASCII "KGLOG_PROCESS_ERROR(%s) at line %d in %s
0042C6C8 |. 6A 07 push 0x7
0042C6CA |. FF15 C4805600 call dword ptr ds:[<&Engine_Lua5.KGLogPr>; Engine_L.KGLogPrintf
这是所有功能CALL的内部的交汇点,然后点鼠标右键“查找”-》“所有命令”-》"CALL 0042c690",就是这个函数的头部
然后在弹出的窗口中点鼠标右键,“在每个命令上设置断点”,然后youxi会不停的断下,按F2取消当前断点, 再按F9运行youxi,这样多按几次,直到youxi不自动断下为止,比如你想找技能CALL,你就在youxi里使用技能,然后youxi会断下,按ALT+K查看调用堆栈,点第一个双击,来到的代码段就是技能call。如果想找其他的CALL都类似。
2、下面是 OD找二叉树数据的技巧——以 剑网3为例
如果你想找数据,比如说技能结构,你就“查找文本”-》“LuaGetSkillLevel”
类似这样:
0052CF70 . 83EC 08 sub esp,0x8
0052CF73 . 53 push ebx
0052CF74 . 56 push esi
0052CF75 . 57 push edi
0052CF76 . 8B7C24 18 mov edi,dword ptr ss:[esp+0x18]
0052CF7A . 57 push edi
0052CF7B . 8BD9 mov ebx,ecx
0052CF7D . 33F6 xor esi,esi
0052CF7F . E8 9EB3EEFF call <jmp.&Engine_Lua5.lua_gettop>
0052CF84 . 83C4 04 add esp,0x4
0052CF87 . 83F8 01 cmp eax,0x1
0052CF8A . 74 21 je XJX3Clien.0052CFAD
0052CF8C . 68 6CEE5900 push JX3Clien.0059EE6C ; ASCII "KPlayer:
uaGetSkillLevel"
0052CF91 . 68 90160000 push 0x1690
0052CF96 . 68 708D5600 push JX3Clien.00568D70 ; ASCII "nRetCode == 1"
0052CF9B . 68 6C875600 push JX3Clien.0056876C ; ASCII "KGLOG_PROCESS_ERROR(%s) at line %d in %s
0052CFA0 . 6A 07 push 0x7
0052CFA2 . FF15 C4805600 call dword ptr ds:[<&Engine_Lua5.KGLogPr>; Engine_L.KGLogPrintf
0052CFA8 . 83C4 14 add esp,0x14
0052CFAB . EB 3B jmp XJX3Clien.0052CFE8
0052CFAD > 6A 01 push 0x1
0052CFAF . 57 push edi
0052CFB0 . E8 79B3EEFF call <jmp.&Engine_Lua5.lua_tonumber>
0052CFB5 . D97C24 20 fstcw word ptr ss:[esp+0x20]
0052CFB9 . 0FB74424 20 movzx eax,word ptr ss:[esp+0x20]
0052CFBE . 0D 000C0000 or eax,0xC00 $5@[l5cJU;
0052CFC3 . 894424 14 mov dword ptr ss:[esp+0x14],eax
0052CFC7 . 83C4 08 add esp,0x8
0052CFCA . 8D8B 6C500000 lea ecx,dword ptr ds:[ebx+0x506C]
0052CFD0 . D96C24 0C fldcw word ptr ss:[esp+0xC]
0052CFD4 . DF7C24 0C fistp qword ptr ss:[esp+0xC]
0052CFD8 . 8B4424 0C mov eax,dword ptr ss:[esp+0xC]
0052CFDC . 50 push eax
0052CFDD . D96C24 1C fldcw word ptr ss:[esp+0x1C]
0052CFE1 . E8 6AA8FCFF call JX3Clien.004F7850
地址0052CFE1这个地方的call JX3Clien.004F7850就是通过技能ID来返回技能等级,地址0052CFCA那个地方的ebx+0x506C,这个EBX就是人物基址。
共
条评分
回复
举报
unixanx
UID:743043
注册时间
2014-09-23
最后登录
2014-10-03
在线时间
4小时
发帖
5
搜Ta的帖子
精华
0
黑豆
5
威望
5
贡献值
0
交易币
0
红豆
0
访问TA的空间
加好友
用道具
菜鸟(发帖需审核,请升级)
发帖
5
黑豆
5
威望
5
贡献值
0
交易币
0
红豆
0
加关注
发消息
只看该作者
2
发表于: 2014-09-24
请教楼主,我用上面的方法断不了的call得怎么找呀,查找KPlayerClient::Send之后函数头下断,技能啥的都断,但是像/ Output 这样调用的不断,请楼主教教我,谢谢
共
条评分
回复
举报
xiaoxifeng1987
UID:877479
注册时间
2017-12-27
最后登录
2017-12-31
在线时间
2小时
发帖
0
搜Ta的帖子
精华
0
黑豆
0
威望
0
贡献值
0
交易币
0
红豆
0
访问TA的空间
加好友
用道具
菜鸟(发帖需审核,请升级)
发帖
0
黑豆
0
威望
0
贡献值
0
交易币
0
红豆
0
加关注
发消息
只看该作者
3
发表于: 2017-12-27
l老师,请问下 “LuaGetSkillLevel” 这个是代表什么意思 求解
共
条评分
回复
举报
发帖
回复
返回列表
https://bbs.2cto.com
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
隐藏
快速跳转
第一栏目
新人交流区
悬赏问答
原创作品发布
业界资讯
评论
安全技术
电脑安全
网站安全
加密解密技术
编程开发
软件编程开发
WEB开发
数据库
微信公众平台开发与营销
微信公众平台开发
微信营销
电脑技术
系统技术
网络技术
QQ部落
硬件相关
资源分享版
学习资料下载区
站长交流
网站建设
网站源码
休憩&交易版
红黑茶社
其它板块
Vip板块
活动&兑奖区
论坛管理区
管理团队版
关闭
关闭
选中
1
篇
全选