简体   繁体   English

对C进行编程以防止android中的逆向工程

[英]programming C in order to prevent reverse engineering in android

I am a beginner android developer and I want to make it hard to decompile my apk files. 我是一名初学者android开发人员,我想使其反编译apk文件变得困难。 I uses ProGuard but it only changes functions and values names, and people still have access to the full code of my apps, so i'm looking for something stronger. 我使用ProGuard,但它仅更改函数和值名称,而且人们仍然可以访问我的应用程序的完整代码,因此我正在寻找更强大的功能。

I have learned today and yesterday how to combine C files in the project and I managed to build an app that combine C and JAVA. 我今天和昨天都学到了如何在项目中组合C文件,并且设法建立了一个将C和JAVA相结合的应用程序。 I build few functions in C instead of JAVA, and the Java uses them in the app. 我用C而不是JAVA构建了几个函数,而Java在应用程序中使用了它们。

How much this method can prevent people from decompile my apps? 这种方法在多大程度上可以防止人们反编译我的应用程序? I know that it's very easy to decompile JAVA, but what about C files ? 我知道反编译JAVA非常容易,但是C文件呢? Is it hard to decompile .so and .o files? 反编译.so和.o文件很难吗? Does this method is a good idea ? 请问这种方法是个好主意吗? will it make it harder to decompile my app? 它会使得反编译我的应用更加困难吗?

thanks for your help :) 谢谢你的帮助 :)

It will make it harder but not impossible. 这将使难度加大,但并非没有可能。 Anyone sufficiently motivated will still be able to disassemble your binaries and see how your program works - disassembly is trivial and modern C decompilers are pretty darn good, too. 任何有足够动力的人都仍然可以反汇编您的二进制文件,并查看您的程序如何工作-反汇编很简单,现代C反编译器也相当不错。

The bottom line in software security is that if you have a process that absolutely must be secret, it needs to be on a secure server. 软件安全性的底线是,如果您有一个绝对必须保密的进程,则该进程必须位于安全的服务器上。 Anything that you run on someone else's device should be considered insecure. 您在他人设备上运行的任何内容均应视为不安全。 Pragmatically, however, there's simply not much motivation for people to do this, so even the low barrier (Java compilation) is more than enough to keep your code unseen. 但是,实用上,人们这样做的动机并不多,因此,即使是较低的障碍(Java编译)也足以使您的代码看不见。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM