我一直在考虑如何保护我的C/C++代码免于反汇编和逆向工程.通常我永远不会在我的代码中宽恕这种行为; 然而,为了各种人的安全,我一直在努力的现行协议绝不能被检查或理解.
现在这对我来说是一个新的主题,互联网并不是真正有效防范逆向工程,而是描绘了大量有关如何逆向工程的信息
到目前为止我想到的一些事情是:
编写我自己的启动例程(调试器更难绑定)
void startup();
int _start()
{
startup( );
exit (0)
}
void startup()
{
/* code here */
}
Run Code Online (Sandbox Code Playgroud)运行时检查调试器(如果检测到则强制退出)
功能蹦床
void trampoline(void (*fnptr)(), bool ping = false)
{
if(ping)
fnptr();
else
trampoline(fnptr, true);
}
Run Code Online (Sandbox Code Playgroud)无意义的分配和解除分配(堆栈变化很多)
我的意思是这些是我所想到的一些事情,但是在适当的时间范围内,它们都可以被代码分析师解决或者解决.我还有其他选择吗?