首页
社区
课程
招聘
[求助]关于代码注入的问题
2018-11-30 20:53 11695

[求助]关于代码注入的问题

2018-11-30 20:53
11695
最近在弄某企鹅公司的LXL,然后在调用一个CALL的时候,在代码注入器和CE的自动汇编都是可以调用的,而且代码也没问题。于是我写个一个dll,在dll里内嵌了调用call的汇编代码,我注入DLL的时候,游戏给崩溃了,为什么??求各路大佬解释

附上代码

DLL的核心代码
 DWORD Addr=0x0123ABCE;

_asm
{
    pushad
    pushfd
    mov eax,[0x0123ABCE]
    lea ecx,[eax+0x00F8]
    mov dword ptr ds:[ecx+0x40],0
    push 01
    call Addr
    popfd
    popad
    ret
}

代码注入器的,这段注入是可以注入成功的。

pushad
pushfd
mov eax,[0x0123ABCE]
lea ecx,[eax+0x00F8]
mov dword ptr ds:[ecx+0x40],0
push 01
call 0x0123ABCE
popfd
popad
ret




[培训]《安卓高级研修班(网课)》月薪三万计划

收藏
点赞0
打赏
分享
最新回复 (14)
雪    币: 882
活跃值: (350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zquchs 2018-11-30 22:59
2
0
把ret去掉试试看
雪    币: 69
活跃值: (7157)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
PlaneJun 6 2018-11-30 23:24
3
0
还是不行,我用易语言写出来了,可以调用,就是不懂这个内嵌汇编为什么会不行
雪    币: 69
活跃值: (7157)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
PlaneJun 6 2018-11-30 23:24
4
0
zquchs 把ret去掉试试看
还是不行,我用易语言写出来了,可以调用,就是不懂这个内嵌汇编为什么会不行 
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuchengton 2018-12-1 00:07
5
0
可能因为你的函数不是naked,你的内联汇编和编译器生成的代码产生冲突,栈不平了。。
雪    币: 69
活跃值: (7157)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
PlaneJun 6 2018-12-1 00:21
6
0
yuchengton 可能因为你的函数不是naked,你的内联汇编和编译器生成的代码产生冲突,栈不平了。。
那怎么弄
雪    币: 882
活跃值: (350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zquchs 2018-12-1 00:58
7
0
DWORD Addr=0x0123ABCE;
  __declspec(naked) void Func()
{
_asm
{
    pushad
    pushfd
    mov eax,[0x0123ABCE]
    lea ecx,[eax+0x00F8]
    mov dword ptr ds:[ecx+0x40],0
    push 01
    call Addr
    popfd
    popad
    ret
}
}
将汇编写成裸函数Func,然后在DLL直接调用Func函数
雪    币: 101
活跃值: (142)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
cxxxx 1 2018-12-1 14:46
8
0
mov eax,[0x0123ABCE]
改成
mov eax,0x0123ABCE
mov eax,[eax]
雪    币: 12833
活跃值: (8989)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2018-12-3 09:12
9
0
@腾讯游戏安全中心 @gslab
S12见
雪    币: 126
活跃值: (905)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
我的研究 2018-12-22 11:16
10
1
hzqst 是腾讯狗吧
雪    币: 2473
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
PYGame 2018-12-22 15:52
11
0
估计是你的DLL被检测到了
雪    币: 210
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大波罗 2022-7-5 22:39
12
0
楼主是B站的“你是故意改我游戏”
雪    币: 695
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_hgrhclks 2023-1-8 16:56
13
0
看看这个call是外平栈还是内平栈 如果是外平栈站 call 0x0123ABCE后面加上 add,esp c      要是内平栈 ret c
雪    币: 576
活跃值: (6280)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
704088 2023-1-8 19:41
14
0
插眼
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
freshreer 2023-1-24 19:05
15
0

手动加int 3单步调试吧…
而且 mov eax,[0x0123ABCE] 说明你 Addr 那里存的一个指针,可是你后面直接 call Addr

而且还需要保证你的static地址是对的,版本一直都变的吧

最后于 2023-1-24 20:16 被freshreer编辑 ,原因:
游客
登录 | 注册 方可回帖
返回