1

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

ixiaohuo 2017-5-21 23:48 4167

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

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

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

上传的附件:
最新回复 (24)
joker陈 2017-5-22 08:05
2
感觉可以精华了。哈哈
basketwill 2017-5-22 09:13
3
这个是老东西了,老技术了
1
ixiaohuo 2017-5-22 09:28
4
basketwill 这个是老东西了,老技术了
的确,但是不是说老技术就没有利用价值了。这不是最近那个病毒还在用么?给不会的人分享一下么
8
kanxue 2017-5-22 09:38
5
basketwill 这个是老东西了,老技术了
论坛欢迎基础的东西,这也是给新人一个学习的机会
syxdotar 2017-5-22 09:40
6
支持
8
kanxue 2017-5-22 09:40
7
joker陈 感觉可以精华了。哈哈
如果再加上一些文字解说,就可以精华了。
supersoar 2017-5-22 19:04
8
basketwill 这个是老东西了,老技术了
问题是老技术  也没几个人  愿意分享出来啊。。。。论坛我搜过  没几个  相关话题。
Rookietp 2017-5-22 23:39
9

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

newine 2017-5-23 16:03
10
像这种,想搜的时候都找不到,感谢分享,减少学习时间成本。
lynnux 2017-5-23 16:21
11
kanxue 如果再加上一些文字解说,就可以精华了。
用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
8
kanxue 2017-5-23 16:24
12
lynnux 用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
这个观点同意,大家引用别人的资料,参考资料里提一下。
1
ixiaohuo 2017-5-23 18:32
13
lynnux 用老外的代码却一点都不提出处,https://github.com/fancycode/MemoryModule
这个我忘了,的确是用的老外的资料,谢谢提醒
rlive 2017-5-24 10:35
14
注入弹个hello  world框,都算精华了。
1
叁毛 2017-5-24 11:19
15
很好,拼最后,大家都是拼谁对基础理解更透,细节更清楚。
技术本身没有过时的。
ugvjewxf 2017-5-26 06:23
16
这样我们便无法查到它的加载模块与函数地址。    好处就是这个,学习下,不错,感谢楼主分享出来
PPTV 2017-5-26 23:15
17
跟着病毒学技术---学习WannaCry自己实现LoadLibrary
4
yirucandy 2017-9-1 20:52
18
不错  鼓励一下
聖blue 2017-9-1 21:48
19
不错!!!!!!!
匿名编程 2017-9-4 09:11
20
研究学习
冰雄 2017-9-5 09:07
21
不错的东西。病毒代表技术的水平高低
1
拍拖 2017-9-5 18:03
22
              MemoryModule的实现有些问题,在加载VMPROTECT3.0以前加壳的DLL(启用内存保护功能)会
报文件被修改从而DLLMAIN初始化失败。
换个刀锋 2017-12-7 13:54
23
好东西,学到很多
niuzuoquan 2017-12-7 17:29
24
mark
ielts 2017-12-9 11:33
25
支持
返回