level 13
Nukepayload2
楼主

自从有了Reflector,网上各种.net程序代码保护器诞生了。但是,号称能生成本机代码的保护器会让exe文件巨大,免费混淆器效果不佳,反jit hook的那些都收费。那么,保护代码只能自己来了。
为了使用方便,我用Managed C++,也就是vs自带的那个c++ 写一层壳。
大致算法:
分为加壳和运行两种模式。
要加壳的话,先读你编译好的托管的程序
然后自己想个办法用非托管代码加密
保存为另一个文件
要执行的话,读取你加了壳的程序
用非托管代码解密,得到Byte()。
在STAThread上用Assembly.Load加载它(注意这之前别执行任何Invoke,否则StackTrace就不灵了),然后.EntryPoint.Invoke运行它。