有没有办法“保护”用于安卓平台的原生共享库(.so),使其免受二进制变化的影响?例如,在反向工程应用程序之后,有人可以用NOP覆盖JMP指令,并将该库分发给根设备。
有人能做些什么吗?
我在这里寻找的是关于实现一系列检查(例如加密、校验和等)的想法。当然,由于这个平台看起来不像它提供了对此的支持(如果我错了,请纠正我),它必须是所有的‘客户端’。因此,整件事有点徒劳无益,但至少会阻碍一些逆向工程。
发布于 2013-03-12 21:33:46
是的,有些事情你可以做,他们将使它非常具有挑战性的反向工程师,但我怀疑你是否能够做任何能阻止克里斯·伊格尔。
防止修改的最佳方法是在编译.so后获取它的一个.so,并在运行时每次重新散列,将其与已知值匹配。此检查将在客户端强制执行,因此熟练的RE只需修改二进制文件就可以忽略检查。不过,这确实会让事情变得有点困难。如果您在整个代码中都进行了检查,并且使用了不同的检查技术,那么它就扩展了RE必须完成的工作量。然而,微软已经在反可再生能源技术上投入了数百万美元,而且还有盗版的Office和Windows。你永远阻止不了他们。我的个人哲学(既然我自己已经研究过了)是,它最终是一个痛苦的尝试去阻止他们。只要做一个好的应用程序,让它便宜,人们就会买。偷你东西的恶棍也不会买的。
如果你的应用程序打电话回家,你也可以提交哈希到服务器进行验证。当然,RE仍然可以绕过这一点,但这是另一件事要做。
https://stackoverflow.com/questions/15318795
复制相似问题