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

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

2018-11-30 20:53
11923
最近在弄某企鹅公司的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




[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 882
活跃值: (350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
把ret去掉试试看
2018-11-30 22:59
0
雪    币: 106
活跃值: (7386)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
3
还是不行,我用易语言写出来了,可以调用,就是不懂这个内嵌汇编为什么会不行
2018-11-30 23:24
0
雪    币: 106
活跃值: (7386)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
4
zquchs 把ret去掉试试看
还是不行,我用易语言写出来了,可以调用,就是不懂这个内嵌汇编为什么会不行 
2018-11-30 23:24
0
雪    币: 261
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可能因为你的函数不是naked,你的内联汇编和编译器生成的代码产生冲突,栈不平了。。
2018-12-1 00:07
0
雪    币: 106
活跃值: (7386)
能力值: ( LV9,RANK:335 )
在线值:
发帖
回帖
粉丝
6
yuchengton 可能因为你的函数不是naked,你的内联汇编和编译器生成的代码产生冲突,栈不平了。。
那怎么弄
2018-12-1 00:21
0
雪    币: 882
活跃值: (350)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
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函数
2018-12-1 00:58
0
雪    币: 101
活跃值: (157)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
mov eax,[0x0123ABCE]
改成
mov eax,0x0123ABCE
mov eax,[eax]
2018-12-1 14:46
0
雪    币: 12848
活跃值: (9118)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
9
@腾讯游戏安全中心 @gslab
S12见
2018-12-3 09:12
0
雪    币: 128
活跃值: (947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
hzqst 是腾讯狗吧
2018-12-22 11:16
1
雪    币: 2473
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
估计是你的DLL被检测到了
2018-12-22 15:52
0
雪    币: 210
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
楼主是B站的“你是故意改我游戏”
2022-7-5 22:39
0
雪    币: 695
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
看看这个call是外平栈还是内平栈 如果是外平栈站 call 0x0123ABCE后面加上 add,esp c      要是内平栈 ret c
2023-1-8 16:56
0
雪    币: 633
活跃值: (6471)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
插眼
2023-1-8 19:41
0
雪    币: 54
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15

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

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

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