精易论坛

标题: 新手汇编调用call的方法求助 [打印本页]

作者: 南瓜2021    时间: 2024-12-22 17:54
标题: 新手汇编调用call的方法求助
00721929 | E8 72300C00              | call 1968.7E49A0                        |
0072192E | 8D8D 84040000            | lea ecx,dword ptr ss:[ebp+484]          |
00721934 | E8 4790F6FF              | call 1968.68A980                        |    我想调用这个call
00721939 | 8BF0                     | mov esi,eax                             |
0072193B | B9 40C48F00              | mov ecx,1968.8FC440                     |
00721940 | 897424 3C                | mov dword ptr ss:[esp+3C],esi           |
00721944 | E8 07A8F8FF              | call 1968.6AC150                        |

我写的调用方法
.版本 2
.支持库 spec
.子程序 解密人物名, 整数型
.参数 指针, 整数型                          这里指针是传进来的对象 跟ebp相等
.局部变量 CALL地址, 整数型

dm.AsmClear ()
dm.AsmAdd (“lea ecx, [” + 十到十六 (指针) + “+484]”)
dm.AsmAdd (“call 0068A980”)
CALL地址 = dm.AsmCall (窗口句柄, 6)
返回 (CALL地址)

问题现象是call返回的eax地址和值是正确的,但是每次读出来的值一直是人物名,call下断点eax返回来的地址读出来的值是周围的名字。
路过的大佬帮帮忙看下,感谢


作者: liwei321gogo    时间: 2024-12-22 20:29
下断点的寄存器和call的时候寄存器不一样
作者: 南瓜2021    时间: 2024-12-23 12:19
liwei321gogo 发表于 2024-12-22 20:29
下断点的寄存器和call的时候寄存器不一样

dm.AsmAdd (“lea ecx, [” + 十到十六 (指针) + “+484]”)  这一段写的有问题吗 值传错了?
作者: 南瓜2021    时间: 2024-12-23 12:19
liwei321gogo 发表于 2024-12-22 20:29
下断点的寄存器和call的时候寄存器不一样

指针和ebp的值确定是一样的
作者: liwei321gogo    时间: 2024-12-23 21:01
你下断点的时候记下寄存器的值,然后mov eax...ebx..ecx....最后直接call一下试试
作者: 将来啊    时间: 2024-12-24 13:02
你传的人物名称的指针,那call解密出来肯定就是你人物名称啊,你可以尝试传其他人物或者物品的指针试下。
作者: 南瓜2021    时间: 2024-12-24 13:55
这里调用模式错了,CALL地址 = dm.AsmCall (窗口句柄, 6),另外没有申请内存存返回的值
作者: 谁的坏叔叔    时间: 2024-12-26 18:24
lea为寻址操作 你跟进call 看看是什么样的
作者: 893236113qq    时间: 2025-1-17 17:48
0072192E | 8D8D 84040000            | lea ecx,dword ptr ss:[ebp+484]          |
00721934 | E8 4790F6FF              | call 1968.68A980         

首先你要知道 lea ecx,dword ptr ss:[ebp+484]   的意思
这里的[ebp+484]是一个整体...
了要在00721934 这条指令上下断看看 ecx的值是多少,比如 断在00721934 这里 ecx在寄存器上是 00401000  
那么这个call的写法大概就是
mov ecx,0x00401000
call 0068A980





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4