做项目的时候需要加密程序,所以在书店买了本加密与解密的书,边看书边加密断断续续搞了将近两个月,很是汗颜,不过这本书也算是看了大部分了。
这本书物超所值,书厚实,装帧又好,时常看着看着爬在书上睡觉,到现在书还是没有损毁。
不过缺少64位支持,比如内联汇编在64位下是不能用的,那么书中介绍的SMC如何兼容64位呢?另外64位的PE格式PE+相对于PE也有少许变动,没有在加壳程序体现出来。
在SMC代码中发现了个bug,(PAGE_READWRITE->PAGE_EXECUTE_READWRITE)
VirtualProtect(mbi_thunk.BaseAddress,mbi_thunk.RegionSize,PAGE_EXECUTE_READWRITE/*PAGE_READWRITE*/, &mbi_thunk.Protect);
否则使用PAGE_READWRITE执行下一行代码,会报Access violation错误。也许在xp下运行没问题,到win7运行就不行。
同时SMC中有个关键MSVC设置没有提到,需要设置EHA,否则try,catch无法捕获到异常,这样的话调试起来会非常痛苦。
接下来打算好好学习汇编。