声明
本文转载,感谢原作者dotNetSafe分享
【原创】Xenocode Postbuild 2009 加壳破解 (不断更新中...) http://bbs.pediy.com/showthread.php?p=709608
1.文章简介
这是个用来说怎么 破解通过 Xenocode Postbuild 加壳后的应用
2.正文
周末闲来无事, 就拿Postbuild 2009研究了下, 还有一些问题,还请大侠们指正......
工具:Postbuild 2009破解版 , LoadPE , CFF
先用C#写个测试程序, 代码如下:
CString msg = "This is test!";
MessageBox.Show(msg);
编译为Test.exe
启动Postbuild 2009 ,依次选择Suppress ILDASM ,Metadata Renaming ,String Encryption
然后 Xenocode App
保护后的程序为Test_Xeno.exe ,试着运行下。 一切正常! 然后试着用CFF打开看看它的结构,结果CFF显示Test_Xeno已经变成一个本地的非.NET程序了 。 比较好奇,既然它能正常运行,那就拿Windbg跟一下吧。 加载Test_Xeno.exe后,试着在几个关键的地方下断, UnsafeJitFunction, compileMethod ,结果都无法断下。 然后看了下内存中的文件, 没有还原的迹象。
接着在 MessageBoxW 下断,还是无法断下。 陡然对 Postbuild 2009产生一丝敬畏.... 难道是我的操作哪里出问题了? .NET的程序肯定要还原的呀, 不然怎么运行??? 难道启动了多线程或者多进程? 打开任务管理器看了下, 发现果然启动了一个新的进程。 这下就好办了。
用Windbg Attach到进程中去 .... , 然后Dump 。 用CFF打开一下, 显示有错误。 好了, 该是修复的时候了。 依次将程序的MetaRva , MetaSize等修复。 这次, 元数据表清晰的展现在我们面前。 Postbuild 加入了一些自己的类和函数。 找下原来的Main函数 , 用RVA的偏移定位在文件中看了下, IL代码都被还原了!!(挺意外的)不过Main函数被混淆成 xc44908776323字符串, 这个没关系。 现在唯一的问题就是String Encryption这个东东了 , 不着急, 将格式依次修复, Windbg可以帮我们解决问题。。 呵呵
其实,还没有完全破解, 还有些问题需要完善。 希望大虾们给补充..........
总体来说, Postbuild 的保护让我很失望(不过可能Postbuild 的功能我没有研究到位)。 所谓的压缩,抗ILDASM 等等吧。 都是一层窗户纸, 没有什么新意。更让我郁闷的是 在Postbuild 的Virtualization Settings 里有 embed .net runtime 和 embed sql 的选项 , 难道脱离runtime运行 就是这个 ???
完!!!
(兄弟们别拍砖就行~~ 水平有限, 期待和大家一起学习。。。)
3.更多阅读
软件调试逆向 (看雪论坛)http://bbs.pediy.com/forumdisplay.php?f=4