首页
社区
课程
招聘
[求助]写壳遇到问题
发表于: 2015-4-6 10:23 7333

[求助]写壳遇到问题

2015-4-6 10:23
7333
最近在做毕业设计,写一个简单的加密壳,遇到了一点问题,求大家指点一二

1.我打算在壳中一边解密一边运行程序,那么解密块的大小怎么划分处理呢?感觉是个棘手的问题。。
2.好多加壳程序都是把壳代码注入到程序中,我想把程序注入到壳中,原理似乎一样,但是问题似乎不少,比如程序用到的数据资源等这些该怎么处理?仅仅是重定位就可以了吗?求大家指点指点

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 178
活跃值: (125)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是本科毕业设计吗?你可以在看看老狼的写壳教程,写的很详细,很多人都是从这入门的。
2015-4-6 13:36
0
雪    币: 88
活跃值: (335)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
3
我看过的。。。
2015-4-6 16:06
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感觉两者难度都不小
第一个代码段边解密边运行,因为你不知道程序执行的流程呀,这个也基本没法解析的
第二个程序注入到壳中感觉有些玄乎。。算是壳内存加载要保护的程序么?内存加载exe的话问题多多

感觉在iat跟代码一部分自定义抽取到壳段基本强度就可以了。。
以上只是个人见解,我接触壳也就是一点时间。。可能很多理解的地方不对  - -
2015-4-6 16:33
0
雪    币: 88
活跃值: (335)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
5
那悲剧了。。。脑子抽了么当时。。。按时毕业问题好像大了

看到坛子里有说说有壳边解密边运行的。。。我想应该有这方面的资料。。。

那个把程序注入到壳中是想把程序代码感染到壳中,一般是给程序建立一个区段,把壳代码放在里面,我想反过来,把程序代码加密放在壳程序的区段中。。。
2015-4-6 16:45
0
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
边解密边运行

可以参考 Enigma
2015-4-6 17:51
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
壳段自己边解密边运行是没问题的呀,被保护的程序估计是没法实现的,大部分壳也都是区段全部解密完毕之后才开始运行的吧?
你把程序的代码加密放到壳的区段中。。那么原始程序的图标版本信息啥的 你还要先抠出来给外壳程序么。。感觉这样脱离的壳的本意了呀
2015-4-6 18:40
0
雪    币: 11
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
边解密边运行粒度做小到指令级实际上就类似简单的vmp了……
边解密边运行最麻烦的地方在于各种乱七八糟跳转的处理,如果这个壳结合符号来加壳,应该实现边解密边运行还是不难的
2015-4-6 18:43
0
雪    币: 88
活跃值: (335)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
9
给自己挖了个坑
2015-4-6 20:48
0
雪    币: 1272
活跃值: (746)
能力值: ( LV13,RANK:810 )
在线值:
发帖
回帖
粉丝
10
把程序代码扒到壳里面,当壳被脱掉的时候,程序的一部分代码也没了,执行自然崩了。
这一块你可以用SDK标记出你要扒出来的代码或者干脆加密起来,虚拟机保护都可以。
但是你把程序塞到壳里面?怎么塞?有想过么?一般程序是主体,壳是辅助的。
现在要是壳是主体的话。。。我是想不出来要怎么处理。
我觉得除了内存执行exe之类的方法---几乎没啥好办法了
比如morphine的内存壳这样是可以做到的。
壳外面反调试,多态解密,然后都处理完了。内存跳转到原始程序执行---你只需要写一个PE Loader就可以了(这个不是傀儡进程)

边解密边执行本身不难。壳的代码分成好几层。第一段解密第二段的时候,就执行,然后层层嵌套。这个在许多壳里面都有。至于如何计算代码大小这个更容易了
procedure xStart(); begin end;
procedure xEnd(); begin end;

nSize := UIntPtr(@xEnd) - UIntPtr(@xStart);

你写在xStart --- xEnd之间的代码就可以计算出大小了。
为啥不用C\C++?因为不喜欢在业余时候用C\C++
思路是一样的。delphi还有个好处。就是编译器优化不会导致
整体内存结构变形。。。这点vc做的很差,gcc也是。
写壳的时候特别需要注意。而且无法x64无法内嵌汇编这个很不爽。

居然是毕业设计,多用一些技巧,然后能怎么吹就怎么吹,比如说加密算法随机生成,
然后写出公式---就按照KME32变形引擎的说明文档上抄。
多态加密就写得和代码变形一样复杂。
能上驱动就上驱动。神马流行上什么---虚拟机其他事情也别干,就专心搞跳转就好了

写论文和写技术文章不一样。一个是给别人看的一个是给自己看的。
2015-4-28 23:52
0
雪    币: 6911
活跃值: (9069)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
11
有教程的下载地址吗?谢谢。
2015-6-22 13:59
0
游客
登录 | 注册 方可回帖
返回
//