为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++ C
眼眸繁星 2019-11-21 14:14:21
我一直在考虑如何保护我的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);   }无意义的分配和释放(堆栈变化很多)无意义的虚拟呼叫和蹦床(拆卸输出中的大量跳跃)大量铸件(用于模糊拆卸)我的意思是,这是我想到的一些事情,但是在适当的时间范围内,代码分析人员可以解决所有这些问题,或者可以由代码分析人员弄清楚这些问题。我还有别的选择吗?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

但是只要有适当的时间范围,代码分析人员就可以解决所有这些问题,或者可以通过代码分析找出它们。

如果您给人们提供了一个他们可以运行的程序,那么他们也将有足够的时间对它进行反向工程。这就是程序的本质。一旦二进制文件可供想要解密的人使用,您就无法阻止最终的逆向工程。毕竟,计算机必须能够解密才能运行它,而人类只是速度较慢的计算机。


查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 723 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信