首页
社区
课程
招聘
[原创]绝对自动支持32、64位的内存加载源码
发表于: 2015-9-6 15:30 23305

[原创]绝对自动支持32、64位的内存加载源码

2015-9-6 15:30
23305
绝对自动支持32、64位的内存加载源码(见附件)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
最新回复 (39)
雪    币: 23
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
我 也用过这个类
2015-9-6 15:33
0
雪    币: 4668
活跃值: (1713)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
先顶一个  以后再看
2015-9-6 16:39
0
雪    币: 24
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶!!!好东西啊!!!!!
2015-9-6 16:53
0
雪    币: 4200
活跃值: (4178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
收藏一个..
2015-9-6 16:54
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
路过,mark一下
2015-9-6 16:57
0
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
顶  向楼主学习!
2015-9-6 17:05
0
雪    币: 52
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mark一下 感谢分享
2015-9-6 17:47
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
github一直在更新的
2015-9-6 18:57
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
更新地址呢
2015-9-6 20:49
0
雪    币: 768
活跃值: (515)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
11
下载看看,谢谢楼主。
2015-9-6 21:02
0
雪    币: 223
活跃值: (262)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
收藏一份,谢谢.
2015-9-6 21:12
0
雪    币: 107
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
有前辈能帮忙转换成delphi的吗?

相信很多delphier需要

另外感谢LZ
2015-9-6 21:17
0
雪    币: 99
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
这个不支持SEH吧
2015-9-6 23:17
0
雪    币: 1136
活跃值: (683)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
内存载入dll或exe运行?
2015-9-6 23:23
0
雪    币: 94
活跃值: (445)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
建议给个DEMO,讲讲使用方法
2015-9-7 09:10
0
雪    币: 238
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
看看支持异常处理不
2015-9-7 10:24
0
雪    币: 41
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
IAT修复,基址重定位~~
2015-9-8 09:34
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不兼容 wind 2000以前的系统 鉴定完毕
2015-9-8 16:08
0
雪    币: 55
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
只支持dll,exe 没有重定位节无法支持,当然如果exe也存在基址重定位基址也是支持的。delphi我不会呢,不好意思,不能帮到你
2015-9-14 13:49
0
雪    币: 48
活跃值: (491)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
21
楼主标题用原创,应该算是转载吧。
说一下这份代码里的一个bug。
if (section->SizeOfRawData == 0) {
            // section doesn't contain data in the dll itself, but may define
            // uninitialized data
            size = old_headers->OptionalHeader.SectionAlignment;

在CopySections这个函数中这地方有bug。当section->SizeOfRawData == 0时,size不应该武断的直接用SectionAlignment,应该是section->Misc.VirtualSize按照SectionAlignment对齐后的大小。如果section->Misc.VirtualSize小于SectionAlignment不会触发bug,一旦section->Misc.VirtualSize大于SectionAlignment,就会引发bug。

网上代码不能无脑直接用呀,至少自己要过一遍吧。
2015-9-17 10:46
0
雪    币: 64
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
22
您好 想请教一下 方便留QQ吗? 感激不尽
2015-9-22 17:27
0
雪    币: 35
活跃值: (607)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
求修改份支持MFC DLL的
测试WIN32 DLL可以使用
2015-9-22 18:26
0
雪    币: 35
活跃值: (607)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不支持MFC DLL
2015-9-22 19:04
0
雪    币: 30050
活跃值: (2377)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25
网上这些代码都没处理X64的Dll。加载一个比如说Delphi的64位Dll你就知道了。
64位下面异常处理不再是基于frame的,而是基于run time function table。

解决办法:如果是自己的Dll,好办。

1,你可以在编译c++ dll的时候指定异常类型参数为非/EHsc.

或者

2,自己手动向系统注册,说我把哪个dll载入到哪个内存地址了。

还可以

3,自己写个c++异常过滤器来辅助被载入的dll。

如果不是自己写的Dll,调用一个Api函数倒也是OK的。
2015-10-28 03:03
0
游客
登录 | 注册 方可回帖
返回
//