首页
社区
课程
招聘
[原创]跟着病毒学技术---学习WannaCry自己实现LoadLibrary
发表于: 2017-5-21 23:48 15400

[原创]跟着病毒学技术---学习WannaCry自己实现LoadLibrary

2017-5-21 23:48
15400

最近逆了一下搞得人心惶惶的比特币勒索病毒WannaCry,发现里边有个知识点我挺感兴趣的,于是记下来跟大家分享。WannaCry在加载加密函数动态库的时候,并没有调用LoadLibrary()函数,而是自己实现将其加载到指定内存,并自己实现GetProcAddress()从而实现函数的调用。这样有什么好处呢?这样我们便无法查到它的加载模块与函数地址。我这里也有一个自己写的Demo,实现了LoadLibrary、GetProcAddress和FreeLibrary函数。代码中有我写的注释,比较详细可以看看。

其实,动态库的加载需要对PE格式有个清楚的认识,这样PE加载其实并不难,这里我推荐看雪的《PE权威指南》。

注:本例通过学习国外一大牛在GitHub上分享的开源代码,链接:https://github.com/fancycode/MemoryModule


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 5
支持
分享
最新回复 (35)
雪    币: 10725
活跃值: (2725)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
2
感觉可以精华了。哈哈
2017-5-22 08:05
0
雪    币: 1991
活跃值: (1506)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
这个是老东西了,老技术了
2017-5-22 09:13
0
雪    币: 1380
活跃值: (116)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
basketwill 这个是老东西了,老技术了
的确,但是不是说老技术就没有利用价值了。这不是最近那个病毒还在用么?给不会的人分享一下么
2017-5-22 09:28
0
雪    币: 44229
活跃值: (19950)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
basketwill 这个是老东西了,老技术了
论坛欢迎基础的东西,这也是给新人一个学习的机会
2017-5-22 09:38
0
雪    币: 1112
活跃值: (184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持
2017-5-22 09:40
0
雪    币: 44229
活跃值: (19950)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
joker陈 感觉可以精华了。哈哈
如果再加上一些文字解说,就可以精华了。
2017-5-22 09:40
0
雪    币: 583
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
basketwill 这个是老东西了,老技术了
问题是老技术  也没几个人  愿意分享出来啊。。。。论坛我搜过  没几个  相关话题。
2017-5-22 19:04
0
雪    币: 1042
活跃值: (470)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9

注释很完整~感觉可以得精华。

2017-5-22 23:39
0
雪    币: 1849
活跃值: (57)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
像这种,想搜的时候都找不到,感谢分享,减少学习时间成本。
2017-5-23 16:03
0
雪    币: 3330
活跃值: (1662)
能力值: ( LV6,RANK:93 )
在线值:
发帖
回帖
粉丝
11
kanxue 如果再加上一些文字解说,就可以精华了。
用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
2017-5-23 16:21
0
雪    币: 44229
活跃值: (19950)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
12
lynnux 用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
这个观点同意,大家引用别人的资料,参考资料里提一下。
2017-5-23 16:24
0
雪    币: 1380
活跃值: (116)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
lynnux 用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
这个我忘了,的确是用的老外的资料,谢谢提醒
2017-5-23 18:32
0
雪    币: 26
活跃值: (79)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
注入弹个hello  world框,都算精华了。
2017-5-24 10:35
0
雪    币: 17
活跃值: (308)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
很好,拼最后,大家都是拼谁对基础理解更透,细节更清楚。
技术本身没有过时的。
2017-5-24 11:19
0
雪    币: 615
活跃值: (530)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
这样我们便无法查到它的加载模块与函数地址。    好处就是这个,学习下,不错,感谢楼主分享出来
2017-5-26 06:23
0
雪    币: 9560
活跃值: (2391)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
跟着病毒学技术---学习WannaCry自己实现LoadLibrary
2017-5-26 23:15
0
雪    币: 6394
活跃值: (2207)
能力值: ( LV12,RANK:320 )
在线值:
发帖
回帖
粉丝
18
不错  鼓励一下
2017-9-1 20:52
0
雪    币: 6818
活跃值: (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不错!!!!!!!
2017-9-1 21:48
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
研究学习
2017-9-4 09:11
0
雪    币: 1484
活跃值: (1135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
不错的东西。病毒代表技术的水平高低
2017-9-5 09:07
0
雪    币: 1790
活跃值: (3524)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
22
              MemoryModule的实现有些问题,在加载VMPROTECT3.0以前加壳的DLL(启用内存保护功能)会
报文件被修改从而DLLMAIN初始化失败。
2017-9-5 18:03
0
雪    币: 29
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
好东西,学到很多
2017-12-7 13:54
0
雪    币: 310
活跃值: (2227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
mark
2017-12-7 17:29
0
雪    币: 965
活跃值: (89)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
支持
2017-12-9 11:33
0
游客
登录 | 注册 方可回帖
返回
//