kphost 发表于 2021-4-25 19:23

关于共用代码与汇编的求助!

遇到一个游戏,共用代码是1P与2P角色和怪共用当前血量代码,用结构分析,只在一个地方找到像分出阵营的代码
代码地址:[[[+10]+20]+20] 里面存放了,角色是2,怪物是3
我用AOB注入
代码如下


aobscan(1PHP,F3 0F 11 6E 28 F3 0F 10 46 28 F3 0F 5A C0 F2)
alloc(newmem,$1000)
label(code)
label(return)

newmem:
mov rax,rsi               //下断点测试 rax当前为0
mov rax,   //rax=rsi
lea rax,       // rax=10 不明为何变成这个了
lea rax,   
cmp ,2      //比较不是角色=2跳到原代码扣血
jne code                  //i游戏出错闪退
movss xmm5,//为当前人物最大血量
code:
movss ,xmm5//原代码 当前血量
jmp return

1PHP:
jmp newmem
return:
registersymbol(1PHP)


1PHP:
db F3 0F 11 6E 28

unregistersymbol(1PHP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: 05374B0B

05374ADC: F3 0F 11 6E 28               - movss ,xmm5
05374AE1: 48 8B CE                     - mov rcx,rsi
05374AE4: 48 83 EC 20                  - sub rsp,20
05374AE8: 49 BB 30 4C 37 05 00 00 00 00- mov r11,0000000005374C30
05374AF2: 41 FF D3                     - call r11
05374AF5: 48 83 C4 20                  - add rsp,20
05374AF9: E9 B6 00 00 00               - jmp 05374BB4
05374AFE: F3 0F 10 45 F0               - movss xmm0,
05374B03: F3 0F 5A C0                  - cvtss2sd xmm0,xmm0
05374B07: F2 0F 5A E8                  - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
05374B0B: F3 0F 11 6E 28               - movss ,xmm5
// ---------- DONE INJECTING----------
05374B10: F3 0F 10 46 28               - movss xmm0,
05374B15: F3 0F 5A C0                  - cvtss2sd xmm0,xmm0
05374B19: F2 0F 11 45 E8               - movsd ,xmm0
05374B1E: 48 8B CE                     - mov rcx,rsi
05374B21: 48 83 EC 20                  - sub rsp,20
05374B25: 48 8B 06                     - mov rax,
05374B28: 90                           - nop
05374B29: 90                           - nop
05374B2A: 90                           - nop
05374B2B: FF 90 C8 00 00 00            - call qword ptr
}


基础太差了,搞了好几天,都没搞明白这汇编代码要怎么写
实在没办法,只能来请教一吓各位大侠了,十分感谢!

kphost 发表于 2021-4-26 00:10

怎么没大侠指点一吓的?

lyl610abc 发表于 2021-4-28 11:50

kphost 发表于 2021-4-26 00:10
怎么没大侠指点一吓的?

看到你的问题,说实话我的第一反应是不想细看和回答
因为你的提问方式不是很友好,排版看得也不是很舒服
你的提问:只是极其简略地说了一下问题,没有图片说明,然后就贴上了代码(也没有使用插入代码块)
根据你目前所给的信息应该是能够回答出问题的,但是所花费的时间成本会较高,并且过程并不舒服
这边给出我的个人建议:将遇到的问题过程中比较重要的过程截图,就比如你代码中有注释的部分
毕竟大家都是用爱发电,没有那么多时间专门为你花费那么多时间解答,如果实在想知道也可以去悬赏区发帖
可能有些人觉得我这么回复太做作了,搞得自己很厉害很忙的样子,但是我打这么多字回复你也是因为我当初也有问问题但无人问津的情况;很多情况下并不是别人冷漠,只是你的提问方式并不是那么友好,提问也是一种艺术,好的提问方式更容易获得他人的热心帮助
如果仍然觉得我的回复太过做作,就是拐弯抹角不想回答问题,那我也无话可说。
我的建议就在这,采纳与否取决于你自己的判断,只是作为一个过来人的心里话罢了,不喜勿喷

answdl 发表于 2021-4-28 18:42

去网络上查一查lea和mov的区别,这个问题基本就解决了。

kphost 发表于 2021-4-28 21:20

本帖最后由 kphost 于 2021-4-28 21:25 编辑

lyl610abc 发表于 2021-4-28 11:50
看到你的问题,说实话我的第一反应是不想细看和回答
因为你的提问方式不是很友好,排版看得也不是很舒服 ...
新手,对这类提问也不知哪重点,所以都不知怎么排版,不好意思
2楼是因为不知版规,原来在审核后被移动到求助区,半天都不见贴子出现和查看人数才发的提问
原谅我是一个新人{:1_893:}

kphost 发表于 2021-4-28 21:22

answdl 发表于 2021-4-28 18:42
去网络上查一查lea和mov的区别,这个问题基本就解决了。

其实我都看了几天,可能天分太低,还是一知半解,都各种尝试,不是跟踪的值不对,就是游戏出错!{:1_923:}

answdl 发表于 2021-4-28 23:18

kphost 发表于 2021-4-28 21:22
其实我都看了几天,可能天分太低,还是一知半解,都各种尝试,不是跟踪的值不对,就是游戏出错!

https://www.52pojie.cn/forum.php?mod=viewthread&tid=1415338&highlight=x64dbg
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1393075&highlight=x64dbg
https://www.cnblogs.com/lsgxeva/p/8948153.html
可以去参观参观这几个网站(用x64dbg反汇编比CE舒服)
这和天分木有关系的,毕竟修改游戏数值也没什么技术含量。
(还有你把代码中的lea都改为mov就好了)

kphost 发表于 2021-4-29 00:41

answdl 发表于 2021-4-28 23:18
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1415338&highlight=x64dbg
https://www.52pojie. ...

好的.十分感谢你的回复!我试试这个调试器,跟OD很像,不过我还是基础差,要多看看怎么搞!
MOV 也试过.最后是游戏闪退,应该我还是哪里有写错,有可能是没恢复寄存器的值!
再次感谢!{:1_893:}
页: [1]
查看完整版本: 关于共用代码与汇编的求助!