Jar包的反编译:

Java的世界是透明的,当编译java程序的时候,是将java源文件转成.class文件,java虚拟机去执行这些字节码从而得到执行java程序的目的。那么从.class文件能不能得到java源文件呢?答案是肯定的!如今就为大家推荐一款神器jd-gui.exe,界面例如以下图:

它能将.class文件转成java文件,就能看到源代码了!想copy代码的、想汉化的、想盗版的、想学习人家源代码的统统没问题!我们经常见到java中的jar包,通过这个工具能看到jar包中的详细实现,近期公司在做支付宝的手机支付,全部这里去看看支付宝提供的jar包,学习一下:

点击File后选择jar包就可以,出现界面例如以下:

那么就看到了支付宝手机jar包的源码了,比方Http请求对象、返回状态等等哪些。那么这不就看到了支付宝的数据封装了且不是泄密了吗?当然没有那么严重,支付宝那么多牛人,他们肯定早就知道了反编译会透明java代码了,所以这个jar包中的核心代码不是用java来实现的,任你怎么反编译也看不到详细的实现。

Android的反编译

Android应用程序是用java语言来写的,所以在反编译方面也跟java一样的。这里推荐一款android反编译工具ApkDec,该反编译工具将Apk直接分解成java源文件的jar包和资源文件,java源文件的jar包通过jd-gui.ext就能看到源代码,包含androidproject中引用的jar包中的源代码!资源文件直接打开就能够看到源代码。

假设某个Apk全然是用java写的,通过这个工具反编译之后就相当于全然开源了,这对商家的版权和商业机密是很不利的,所以建议在开发具有商业机密和高度保密的apk时,这些重要的部分用其它语言来实现,防止java反编译后被别人看出了端详,比方在android里面使用jni,重要的部分用C/C++去实现。即使是被反编译,也仅仅能看出接口,看不出详细的实现。

好了,详细就是这种。关于反编译工具,见例如以下地址:http://download.csdn.net/detail/main_stage/7477111

最新文章

  1. storm0.9.5集群安装
  2. Spotlight的连接设置
  3. 必须掌握的八个cmd 命令
  4. 多文件目录下makefile文件递归执行编译所有c文件
  5. Java SAX DefaultHandler
  6. jacob访问ocx控件方法和遇到的问题
  7. MyBatis报错
  8. 多目标遗传算法 ------ NSGA-II (部分源码解析) 目标函数值计算 eval.c
  9. 如果ASM磁盘组由哪些物理磁盘组成?
  10. scala中的view bound与context bound
  11. java中printf中用法详解
  12. java基础回顾(五)线程详解以及synchronized关键字
  13. 自己动手实现一个Android Studio插件
  14. 1.3、Android Studio创建一个Android Library
  15. Android 偏门xml属性
  16. 【Linux命令】top命令
  17. HBase笔记6 过滤器
  18. React Native 调用 Web3(1.x) 的正确姿势
  19. C#多线程学习笔记之(abort与join配合使用)
  20. ucore-lab1-练习3report

热门文章

  1. cocos2d-x 之Scene和Layer
  2. POJ 2208 Pyramids 欧拉四面体
  3. (Problem 17)Number letter counts
  4. LGPL与闭源程序
  5. SQLite3的使用(用到了dll)good
  6. Tri_integral Summer Training 8 总结
  7. asp.net jquery+ajax异步刷新1
  8. word2vec 中的数学原理具体解释(三)背景知识
  9. Android中文API(129) —— AudioManager
  10. Jsp分页实例---假分页