首页
社区
课程
招聘
[已解决] [求助]隐藏注入的DLL问题 50.00雪花
发表于: 2019-4-20 13:48 3904

[已解决] [求助]隐藏注入的DLL问题 50.00雪花

2019-4-20 13:48
3904
这几天研究了一下隐藏注入的DLL问题,防照(https://bbs.pediy.com/thread-228710.htm)这里的方法实现了一下,
但是DLL里用到CString 或标准库存的 string wstring 就会崩溃,本人才疏学浅实在找不出原因,请大侠帮忙找下原因,谢谢

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
用了类似cstring这些类似库都会附带依赖的DLL 进去,要单独处理或者改用其他方法。
2019-4-20 18:08
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主电脑上装什么杀毒软件?
2019-4-20 20:19
0
雪    币: 433
活跃值: (1895)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
看雪有帖子介绍了怎么解决mfc资源崩溃的问题,搜一下
2019-4-20 20:21
0
雪    币: 433
活跃值: (1895)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
看雪有帖子介绍了怎么解决mfc资源崩溃的问题,搜一下
2019-4-20 20:21
0
雪    币: 7248
活跃值: (5078)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
string wsting 都属于类对象,而类对象初始化的时候会申请一段内存用于存放类成员.DLL卸载自身后可能会释放掉这些内存.
试试重定位好后,重新调用一下 PIMAGE_NT_HEADERS->OptionalHeader->AddressOfEntryPoint (DLLMAIN入口)
2019-4-21 03:49
0
雪    币: 297
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Rookietp 用了类似cstring这些类似库都会附带依赖的DLL 进去,要单独处理或者改用其他方法。
MT编译应该是不会附带依赖的DLL的,而且调试跟进构造函数确实没有用到其它DLL
2019-4-22 07:51
0
雪    币: 297
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
不是用MFC的框架也会崩溃,所以也不会是MFC 资源问题
2019-4-22 07:52
0
雪    币: 297
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
lononan string wsting 都属于类对象,而类对象初始化的时候会申请一段内存用于存放类成员.DLL卸载自身后可能会释放掉这些内存. 试试重定位好后,重新调用一下 PIMAGE_NT_HEADERS- ...
确实是内存问题,跟进去是一个CALL eax 不知道call 到哪里去了,如果DLL不卸载自身是没问题的,
不过有个疑问局部变量string 等不是执行了代码才构造内存的吗,为什么还会和原来的DLL地址有关呢
2019-4-22 07:56
0
雪    币: 7248
活跃值: (5078)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
萝卜牛肉 确实是内存问题,跟进去是一个CALL eax 不知道call 到哪里去了,如果DLL不卸载自身是没问题的, 不过有个疑问局部变量string 等不是执行了代码才构造内存的吗,为什么还会和原来的DLL ...
因为string是属于C++运行时库管理的,DLL卸载了,运行时库会自动销毁string这些类申请的内存,对运行时库我一直都是这么理解的.
2019-4-22 12:58
0
雪    币: 63
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
方便的话,发你的代码给我,我帮你调一下。
2019-4-22 12:59
0
雪    币: 7248
活跃值: (5078)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
萝卜牛肉 确实是内存问题,跟进去是一个CALL eax 不知道call 到哪里去了,如果DLL不卸载自身是没问题的, 不过有个疑问局部变量string 等不是执行了代码才构造内存的吗,为什么还会和原来的DLL ...
VS现在编译的DLL,默认的DLLMAIN不是真正的入口,如果你自己#pragma comment(linker,"/entry:DllMain")重定义入口函数,你会发现用到的运行时库组件(比如sting)的时候无法通过编译,因为string这些东西调用的时候,会加载运行时库并调用运行时库初始化函数(调用过程是放在vs封装好的入口里,不是DLLMAIN),用于管理运行时库组件运行过程产生的内存,当DLL卸载的时候会自动帮我们把这些内存销毁掉,这就是为什么string这些东西用着那么方便,还没有内存泄露的原因.
2019-4-22 13:12
0
雪    币: 297
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
无名蛋蛋 方便的话,发你的代码给我,我帮你调一下。
多谢了,我想现在我有点明白原因了,自已应该可以调试出来
2019-4-22 21:50
0
雪    币: 297
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
非常感谢你们的解答,好人一生平安
最后于 2019-4-22 22:01 被萝卜牛肉编辑 ,原因:
2019-4-22 21:52
0
游客
登录 | 注册 方可回帖
返回
//