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

Android反编译-逆天的反编译的更多相关文章

  1. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...

  2. Android安全攻防战,反编译与混淆技术完全解析(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/49738023 之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值 ...

  3. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  4. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  5. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

  6. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  7. 谈谈android反编译和防止反编译的方法(转)

    谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...

  8. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  9. Android安全攻防战,反编译与混淆技术全然解析(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章其中,我们学习了Android程序反编译方面的知识,包括 ...

随机推荐

  1. JSP TAG

    Jsp tag 能够灵活的将公共JSP代码模块化,类似<jsp:include page="./include.jsp"></jsp:include>等等. ...

  2. 【Maven】Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0

    1.到 http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html 下载你所需要的oraclejar包 2.在 ...

  3. PHP缓存主要技术

    1.普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中 ...

  4. USACO Longest Prefix 【水】

    用Dp的思想解决了这道题目,也就是所谓的暴力= = 题意:给出一个集合,一个字符串,找出这个字符串的最长前缀,使得前缀可以划分为这个集合中的元素(集合中的元素可以不全部使用). 还不会Trie 树QA ...

  5. 使用ARC必须遵守的规则

    l        不可以再显示调用dealloc.或实现调用retain.release.retainCount.autorelease这些方法.也不能使用@selector(retain), @se ...

  6. 转:MySql的commit和rollback

    从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类.1. DDL(Data Definition Language)     数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ...

  7. matrix(dp)

    matrix Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  8. 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布(Normal distribution)又名高斯分布(Gaussian distribution),是一个在数学.物理及project等领域都很重要的概率分布,在统计学的很多方面有着重大的影 ...

  9. PHP - Cookie 应用

    效果: 代码: <?php //设置编码 header("content-type:text/html; charset=utf-8"); //接收提交的数据 //判断是否接 ...

  10. 几种能在O(n*log(n))时间排序

    线性时间排序   各种排序算法总结已经介绍了几种能在O(n*log(n))时间内培训n个数的算法.归并排序和堆排序达到了最坏情况下的上界:快速排序在平均情况下达到该上界.这些算法都有一个有趣的性质:在 ...