保护可执行文件免受逆向工程?

保护可执行文件免受逆向工程?,第1张

我一直在考虑如何保护我的 C/C++
代码免受反汇编逆向工程的影响。通常我自己不会在我的代码中宽恕这种行为。但是,为了各种人的安全,我一直在研究的当前协议不能被检查或理解。

现在这对我来说是一个新主题,互联网在预防逆向工程方面 并没有真正的足智多谋,而是描述了大量关于 如何逆向工程的信息

到目前为止,我想到的一些事情是:

代码注入(在实际函数调用之前和之后调用虚拟函数)代码混淆(破坏二进制文件的反汇编)

编写我自己的启动例程(调试器更难绑定)

void startup();

int _start()
{
startup( );
exit (0)
}
void startup()
{
/ code here /
}

运行时检查调试器(如果检测到则强制退出)

功能蹦床

 void trampoline(void (*fnptr)(), bool ping = false)

{
if(ping)
fnptr();
else
trampoline(fnptr, true);
}

无意义的分配和释放(堆栈变化很大)

毫无意义的虚拟呼叫和蹦床(反汇编输出中的大量跳跃)

吨铸件(用于混淆拆卸)

我的意思是这些是我想到的一些事情,但它们都可以在正确的时间范围内由代码分析师解决和/或弄清楚。我还有其他选择吗?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/read/1370006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-15
下一篇 2022-06-15

发表评论

登录后才能评论
保存