吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10048|回复: 47
上一主题 下一主题
收起左侧

[Windows] 【CE/C++】【未完结】古剑3逆向找call

  [复制链接]
跳转到指定楼层
楼主
geleisisisi 发表于 2022-4-10 11:50 回帖奖励
本帖最后由 geleisisisi 于 2022-4-16 22:36 编辑

古剑3是我遇到最难调试的游戏,我就不明白找一个添加物品的call怎么就这么难。两年来我是辗转反侧如鲠在喉,但是都毫无进展。不过在学了点C++的皮毛后,我突然灵光一闪找到了突破口,花了两个月的时间才追明白运行结构,然后写了个修改器。其实修改器只是附带品,我真正在意的是逆向的过程,和程序的结构与逻辑,于是打算做一个关于古剑3逆向找call的视频。
因为我是只菜鸡,无论是在CE还是C++的方面。所以很多操作或者写法会显得很幼稚,希望大佬们多多指出我的缺点,让我能够有所进益。

使用工具:
Cheat Engine:大部分时候使用的都是CE
Visual Studio:遍历函数名和ID的时候会用到一些非常基础的C++编程,但是跳过也不影响逆向的理解

本视频所需基础:
1.需要拥有基础的汇编知识。比如一些简单的mov,cmp,test,jmp,push,pop
2.能够较为熟练运用CE,尤其是在下断追踪这一块
3.知道什么是栈,什么是call
4.知道什么是结构体
5.最好有一定的找call的经验
6.教程会涉及到大量的指针,所以需要对指针有一定的了解,就算如此还是会很容易就把自己绕晕

目前预定的章节主要分为几个部分:(有可能会变动)
1.共用代码/共用函数的处理方法。
2.成功断下后,根据不停的比较得出结构体大概是怎么样影响函数运行的。
3.介绍rcx结构体,68,69,70,22类型数据,计算函数B3B00,重铸结构体函数B67B0,共用函数B0210的大致结构
4.实战,如何过滤出自己想要的函数。以及获取函数后,如何写汇编码
5.遍历函数名,以及通过函数名获取想要的70类型地址
6.如何获取各种ID
7.类型地址如何追基址。
8.批量添加的困扰
9.添加契约时遇到的判断阻碍

视频地址:
https://www.bilibili.com/video/BV1aL4y157KR
更新至第2章

修改器地址:
https://bbs.3dmgame.com/thread-6290222-1-1.html

代码部分:
第一章:共用代码/共用函数的处理方法
物品数量增减断点:
[Asm] 纯文本查看 复制代码
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"Gujian3.exe"+B4278) 
label(returnhere)
label(originalcode)
label(exit)
alloc(cmp_addr_item,8)
registersymbol(cmp_addr_item)

newmem:
push rax
mov rax,[cmp_addr_item]
cmp r8,rax
jne originalcode
nop

originalcode:
pop rax
movups [r8],xmm0
mov [r8+0C],r10d

exit:
jmp returnhere

"Gujian3.exe"+B4278:
jmp newmem
nop 3
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Gujian3.exe"+B4278:
movups [r8],xmm0
mov [r8+0C],r10d
//Alt: db 41 0F 11 00 45 89 50 0C
dealloc(cmp_addr_item,8)
unregistersymbol(cmp_addr_item)


断点1:
[Asm] 纯文本查看 复制代码
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"Gujian3.exe"+C86FB) 
label(returnhere)
label(originalcode)
label(exit)

newmem:
push rax
push rbx
mov rax,[rsp+28]
mov rbx,Gujian3.exe+2E586E8//E8 =rightclick;D0 =mouseup;E0 = mouseclick
mov rbx,[rbx]
cmp rax,rbx
jne originalcode
nop
originalcode:
pop rbx
pop rax
mov qword ptr [rsp+20],00000000

exit:
jmp returnhere

"Gujian3.exe"+C86FB:
jmp newmem
nop 4
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"Gujian3.exe"+C86FB:
mov qword ptr [rsp+20],00000000
//Alt: db 48 C7 44 24 20 00 00 00 00

免费评分

参与人数 20威望 +1 吾爱币 +40 热心值 +15 收起 理由
Rylynncx + 1 + 1 热心回复!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jinyi666 + 1 + 1 用心讨论,共获提升!
anyucompany + 1 + 1 我很赞同!
ddw123456 + 1 + 1 我很赞同!
Tunx + 1 + 1 我很赞同!
65302666 + 2 + 1 用心讨论,共获提升!
Jd1875494043 + 1 我很赞同!
Link_Stark + 2 + 1 谢谢@Thanks!
shishi0655 + 1 + 1 谢谢@Thanks!
chinawolf2000 + 1 + 1 热心回复!
henaliu + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!
跳跃的灵魂 + 1 我很赞同!
qqcs6 + 1 + 1 谢谢@Thanks!
hackysh + 1 我很赞同!
tianjifuyun + 1 热心回复!
哇卡s + 1 + 1 热心回复!
努力加载中 + 1 + 1 热心回复!
Jack + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
alicc 发表于 2022-4-10 12:53
侃遍天下无二人 发表于 2022-4-10 12:50
你不直接逆向分析小幸姐的修改器吗,我还想知道她是咋实现切换领队的(猜测她是生成了一段lua脚本并设法让 ...

有些东西.. 非必要的时候,直接取得结果没啥用...
推荐
侃遍天下无二人 发表于 2022-4-10 12:50
你不直接逆向分析小幸姐的修改器吗,我还想知道她是咋实现切换领队的(猜测她是生成了一段lua脚本并设法让游戏执行了)
沙发
快乐的鸡蛋黄 发表于 2022-4-10 12:02
3#
darkefire 发表于 2022-4-10 12:48
这个要收藏一下,古剑一直打不过,有修改器就好了
5#
侃遍天下无二人 发表于 2022-4-10 12:52
你修改物品的时候游戏会提示“获得 ***x1”吗
7#
Joduska 发表于 2022-4-10 14:38

先收藏,今年修炼完成,明年来看!
8#
shuangyan 发表于 2022-4-10 14:59
居然有古剑3???
头像被屏蔽
9#
轩辕剑syz 发表于 2022-4-10 15:32
提示: 作者被禁止或删除 内容自动屏蔽
10#
小木曾雪菜 发表于 2022-4-10 15:45
学习了,这个游戏还真是费劲
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 00:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表