首页
社区
课程
招聘
[求助]手动装载模块怎么初始化全局?
发表于: 2016-8-18 14:37 3170

[求助]手动装载模块怎么初始化全局?

2016-8-18 14:37
3170
经调试 系统也是从OEP进入后初始化全局 可是我手动call OEP却没初始化 能成功返回 因为代码量太大实在无法跟踪 求大件指点下



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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 28972
活跃值: (7458)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
2
call oep要提供参数啊,hModule和reason不传,失败不是很正常的吗
2016-8-18 15:06
0
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
不知道很多信息,匿
2016-8-18 15:06
0
雪    币: 41
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好像是这样 那要提供什么样的参数呢 dllmain一样的?
2016-8-18 15:18
0
雪    币: 144
活跃值: (31)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
5
如果是dll需要调下dllMain,也就是EP 需要把参数都给了. 别的应该不需要 直接调OEP就可以的...
2016-8-18 15:27
0
雪    币: 41
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
的确要传三个参数才行 不然堆栈不平衡 之前没注意到 可是传参后直接崩溃了 原因是句柄的那个参数 是0的话不会崩

这是系统的传参 我也是跟他一样的啊 可是直接崩了
2016-8-18 15:53
0
雪    币: 41
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我这么写的 有什么不对吗

while (true)
                                                                        {
                                                                                __asm
                                                                                {
                                                                                        mov ggg, esp;
                                                                                        //mov eax, eax;
                                                                                        //int 3;
                                                                                        push 0;
                                                                                        push 1;
                                                                                        push pNewDll
                                                                                        call pOepCode; //初始化全局失败

                                                                                }
                                                                                printf("ggg = %x\n", ggg);
                                                                                printf("error = %d\n", GetLastError());
                                                                                nptr = ThreadProc(0);
                                                                                printf("nptr = %d\n", nptr);
                                                                        }
2016-8-18 16:03
0
雪    币: 41
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
尝试call  LoadLibraryA后的OEP 提示初始化CRT最多只能一次 似乎不是那么简单的 里面做了太多的东西 看来要找到初始化全局的入口才行
2016-8-18 16:14
0
雪    币: 28972
活跃值: (7458)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
9
oep就是全局初始化的入口啊
为什么非要用内联汇编..
FDllMain oep = (FDllMain)pOepCode;
oep(hModule, 1, 0);
ThreadProc(0);

记去把前面那行DllMain去掉

加上while(true)又是闹哪样..
2016-8-18 16:31
0
游客
登录 | 注册 方可回帖
返回
//