首页
社区
课程
招聘
[原创][原创]记录下自己学习PE的日子-[滴水三期加壳项目-加密部分]
发表于: 2020-4-1 11:28 8327

[原创][原创]记录下自己学习PE的日子-[滴水三期加壳项目-加密部分]

2020-4-1 11:28
8327

最近在学习滴水三期里面的PE, 在win32讲完之后会有一个项目, 就是对软件加壳C语言代码的实现,  本人菜鸡一个,高手勿喷.


上面图片加密软件的大概的步骤

代码实现:

1.首先就是获取src(被加密软件) 和 shell(壳) 的路径, 然后打印下 看看对不对

       

2.然后把src读到文件buffer,  并且对它的数据进行加密

     

加密代码我使用的是最简单的异或加密

    

3.这时候加密部分代码已经完成一半了,  现在要做的就是把shell程序读到文件buffer, 并且在新增一个节, 把这个src加密后的数据copy进去,最后再把这个shell程序写成exe就可以了.


   

1.在增加节的时候记得做下[文件对齐和内存对齐], 如果不做这个对齐的话保存后exe会不行, 之前这块没做对齐发现有的程序好使有的程序就不好使了, 之后这里我做了下对齐后就可以了, 另外群里的一个大神说如果这里实在怕出错误, 就做两遍对齐, 及是文件对齐又内存对齐, 这样就不会有问题了,简单来说就是调用两遍对齐函数.

新增的节可以用src文件大小, src文件大小你可以在读成文件buffer时候返回来.

   

2.把加密的数据copy到新增节区里面, 就是找到你新增的节, 然后把加密数据copy到PointerToRawData位置

   

ps:在写这fileBuffer拉伸过程中, 发现一个问题, 就是拉伸过后如果缩回去保存exe程序就打不开了,  然后跟群里的好友讨论下, 得出结论对齐不一样导致的, 然后我做了一个试验, 把一个程序读成fileBuffer  然后进行拉伸, (这个时候保存成exe,如果对齐不一样就会报错了 ), 然后拉伸的时候修改可选头里面的文件与内存对齐的值,  我把他们都改成和内存对齐一样大小了, 然后保存....ok还是运行不了,  这时候群友提醒了 说节表里面的对齐也需要修改,  这时候我把节表中的对齐也都改成一样的了, 然后在保存... ok还是运行不了, 然后我想起来之前遇到的一个问题, 把节表属性修改了就好了 我试了下 咦竟然成功了....

这块是我修改拉伸的代码,  但是我感觉这也改,还不如直接把拉伸完的程序在缩回去轻松呢 = =

   

以上的步骤都做成功后,加密软件的步骤就算成功了.

时间:2020/04/01  (记录下学习过程, 明年回来看看自己当时多垃圾)


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

最后于 2020-4-3 17:18 被清风qfccc编辑 ,原因: 重新编辑下标题
收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 57
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
老哥是报的班 还是看的视频呢!  
2020-4-1 11:31
1
雪    币: 305
活跃值: (403)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
HelloWorldPc 老哥是报的班 还是看的视频呢!
就是自学的, 报班成本太高了,负担不起
2020-4-1 11:43
0
雪    币: 57
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也在自学 中级的课程呢 朋友 
2020-4-2 00:34
0
雪    币: 305
活跃值: (403)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
HelloWorldPc 我也在自学 中级的课程呢 朋友
留个qq吧 我们有空可以多交流
2020-4-2 15:25
0
雪    币: 57
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
404986580   一起交流交流 
2020-4-3 10:28
0
雪    币: 305
活跃值: (403)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
交流群 939795543
2020-4-20 17:12
0
雪    币: 110
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
怎么没有解壳过程
2022-5-12 17:54
0
游客
登录 | 注册 方可回帖
返回
//