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. ViewPager+Fragment实现支持左右滑动的Tab

    主要思想:顶部标题栏top.xml,中间ViewPager(4个Fragment),底部导航 top.xml和bottom.xml在我之前的两个随笔里有,此处不再赘述. activity_main.x ...

  2. 2057 A + B Again

    A + B Again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...

  3. Oracle统计之like,or关键字

    有的时候我们统计需要like多个条件,比如某个字段中含有 “银行”或者“投资公司”,这个时候就用like多个字段. 如下是统计某个地区的2015年入院的病种诊断中带有 “癌”或者“肿瘤”的情况, 正确 ...

  4. 循环调用修正sic86 2改后的(除了第一年有点诡异,其他年份可以正常修复)

    create or replace procedure rebuild_sic86_wyl(pi_aac001 in number, po_fhz out varchar2, po_msg out v ...

  5. 高性能的JavaScript--加载和执行[转]

    写在前面 JavaScript在浏览器中的性能,可认为是开发者所要面对的最重要的可用性的问题,此问题因JavaScript的阻塞特征而复杂,也就是说JavaScript运行时其他的事情不能被浏览器处理 ...

  6. JVM -- CMS

    并发的标记—清除(Concurrent Mark Sweep,缩写为 CMS)收集器,使得在整个收集的过程中只是很短的暂停应用的执行,可通过在 JVM 参数中设置-XX:UseConcMarkSwee ...

  7. [转载]IOS项目打包除去NSLog和NSAssert处理之阿堂教程

    原文链接地址:http://blog.sina.com.cn/s/blog_81136c2d0102v1ck.html 原文地址:IOS项目打包除去NSLog和NSAssert处理之阿堂教程作者:时空 ...

  8. Chrome 快捷键

    chrome窗口和标签页快捷键: Ctrl+N 打开新窗口 Ctrl+T 打开新标签页 Ctrl+Shift+N 在隐身模式下打开新窗口 Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件 ...

  9. [转]-bash: wget: command not found的两种解决方法

    wget 时提示 -bash:wget command not found,很明显没有安装wget软件包.一般linux最小化安装时,wget不会默认被安装,这里是CentOS 6.5 64位系统 解 ...

  10. Git 将本次修改追加在上一次修改上面

    Git 将本次修改追加在上一次修改上面 git add . git commit --amend 之后就是进入日志提交页面 确保change-Id那条记录出现在最后一行,如: zh-->en 修 ...