把程序代码扒到壳里面,当壳被脱掉的时候,程序的一部分代码也没了,执行自然崩了。
这一块你可以用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变形引擎的说明文档上抄。
多态加密就写得和代码变形一样复杂。
能上驱动就上驱动。神马流行上什么---虚拟机其他事情也别干,就专心搞跳转就好了
写论文和写技术文章不一样。一个是给别人看的一个是给自己看的。