防止MSCOPY一类脱壳工具解密的一个方法 福建 黄云燕 1996-11-01 笔者在分析RCOPY,MSCOPY的解密机理时发现了这一类脱壳解密工具的弱点,比如说,脱壳后的解密文件没有执行解密中断点以前的代码,利用这一点,防止这类解密工具的方法也就不难设计了,具体方法如下: 在程序没执行任何中断的开始部分加入下列化码:(假设ES为PSP段值) MOV AX,ES;取PSP值 XOR AX,OABCDH;变换 MOV SAVE,AX;保存 在程序调用第一个中断后,在程序流程的必经之处加入下列代码:(设ES为PSP段值) MOV AX,ES;取PSP值 XOR AX,OABCDH;还原 CMP SAVE,AX;比较 JNZ ERROR-EXIT;错误出口 若程序未经脱壳,则前面的第一部分代码可以被执行,这样程序可以正常运行,但一旦被脱壳后,第一部分代码未被执行,SAVE的值始终是一定值。这样就会将程序引入错误出口中去。 上述的第二部分代码可加在其他的子程序上,这样在外面再用其他加密工具加密后的受保护程序可以有效对抗RCOPY,MSCOPY一类脱壳工具的解密。