内置一个(如果你够贪心,放一堆也行)动态链接库,让你的程序胖起来。如果你放了一大堆东西,反汇编时被当作数据忽略了,那基本上没有增加难度。 这个例子中放了WinXP的shell32.dll,故意做了一个调用表(为简单起见,我忽略了形参个数和堆栈平衡,其实根本不会调用它们),用IDA反汇编时会逐个分析这些导出函数。如果你想做得有点迷惑性,需要处理文件头(清零、随机填充或者掐掉文件头重新计算偏移量),对字符串做特征消隐,把导出的函数名全部清掉(都是体力活),并且跟代码放到同一个段中(例子中是.xtext)。 如果是做注册校验,可以把校验函数跟这些导出函数混在一起(增加、替换、……都行啊,随便你啦。这是手工活,可以做得很简陋,也可以做得很精致),这么大的switch-case逐个静态分析很费事。你需要做的就是如何保证输错了不会把程序崩掉,也不会把操作系统挂掉(这个是技术活,但不难,略)。 示例而已,没任何实际用途。
[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!