前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

Android 程序反编译-Android开发进阶&经验分享-eoe Android开发者社区_Android开发论坛 - Powered by Discuz! 客户端eoe首页移动资讯中文百科极客学院WP社区 开启辅助访问 我要上头条话题导航如何赚e币注册验证问题版主申请QQ群切换到窄版 请 登录 后使用快捷导航没有帐号?免费加入 登录 | 注册 搜索 搜索 热搜: 二维码 定时器 手电筒 滑块 斗地主 书架 定位 买手机 聊天 游戏开发 游戏 股票查询 机顶盒 通话记录 二维码扫描 振动器 listview fragment 音乐播放器 播放器 本版帖子用户 快捷导航 首页首页论坛论坛有问必答开发资源源码下载代码库高薪招聘Android高薪招聘应用开发游戏开发视频教程博客博客淘帖 每日签到 高分悬赏专家排行榜问答解答版块我要发帖求助奖励政策Android开发实例教程开源项目组件UI开发资源Android开发资料下载名企招聘信息最新招聘信息Android新手入门Android开发进阶Framework底层开发Cocos2d-x游戏开发Unity3d游戏开发游戏开发分享与问答Java基础视频极客学院精品课程老罗免费android视频晓冬视角多贝互动课程Cocos2d-x教程视频教程下载知名应用高仿专题精品实例项目史上最全系列每日精华好帖UI特效 eoe Android开发者社区_Android开发论坛--> &raquo;--> 论坛 &rsaquo; eoe·Android应用开发区 &rsaquo; Android开发进阶&经验分享 &rsaquo;--> Android 程序反编译--> 33 7896 123 / 3 页下一页 Android 程序反编译 zhongxin123 于 2011-10-28 11:45 发表 [复制链接] [只看楼主] [上一主题] [下一主题] zhongxin123 No.3 秀才开发者 26主题43帖子141e币 加为好友 发送消息 访问博客 没有eoe的账号,级别还太低,出门如何吹牛逼? 您需要 登录 才可以下载或查看,没有帐号?免费加入 x Apk文件的格式   Android application package文件.每个要安装到android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等.   apk文件实际是一个zip压缩包,可以通过解压缩工具解开.可以用zip解开*.apk文件,下面是一个helloword的apk示例文件 java代码: |– AndroidManifest.xml |– META-INF | |– CERT.RSA | |– CERT.SF | `– MANIFEST.MF |– classes.dex |– res | |– drawable | | `– icon.png | `– layout | `– main.xml `– resources.arsc 复制代码 Manifest文件:AndroidManifest.xml是每个应用都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等等信息[ , ],如要把apk上传到Google Market上,也要对这个xml做一些配置.注意:在apk中的xml文件是经过压缩的,不可以直接打开.   Res文件:res文件夹下为所有的资源文件.   resources.arsc文件:为编译后的二进制资源文件,许多做汉化软件的人都是修改该文件内的资源以实现软件的汉化的.   META-INF目录:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全.在eclipse编译生成一个api包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下.而在OPhone平台上安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk.这就保证了apk包里的文件不能被随意替换.比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码, 或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的.如此一来就给病毒感染和恶意修改增加了难度,有助于保护系 统的安全.   classes.dex是java源码编译后生成的java字节码文件.但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样.   XML文件的反编译   在apk中的xml文件是经过压缩的,可以通过AXMLPrinter2工具解开,具体命令为:   java -jar AXMLPrinter2.jar AndroidManifest.xml   HelloAndroid程序中Manifest文件的实例: java代码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:Android="http://schemas.android.com/apk/res/android" Android:versionCode="1" Android:versionName="1.0" package="name.feisky.Android.test" > <application Android:label="@7F040001" Android:icon="@7F020000" > <activity Android:label="@7F040001" Android:name=".HelloAndroid" > <intent-filter > <action Android:name="android.intent.action.MAIN" > </action> <category Android:name="android.intent.category.LAUNCHER" > </category> </intent-filter> </activity> </application> <uses-sdk Android:minSdkVersion="6" > </uses-sdk> </manifest> 复制代码 而原文件为: java代码: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:Android="http://schemas.android.com/apk/res/android" package="name.feisky.Android.test" Android:versionCode="1" Android:versionName="1.0"> <application Android:icon="@drawable/icon" android:label="@string/app_name"> <activity Android:name=".HelloAndroid" Android:label="@string/app_name"> <intent-filter> <action Android:name="android.intent.action.MAIN" /> <category Android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk Android:minSdkVersion="6" /> </manifest> 复制代码 classes.dex文件反编译   classes.dex是java源码编译后生成的java字节码文件.但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样.目前常见的java反编译工具都不能处理dex文件.   Android模拟器中提供了一个dex文件的反编译工具,dexdump.用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex.但是这样得到的结果,其可读性是极差的.下面介绍一个可读性比较好的工具.   工具准备:   1、把dex文件反编译为jar文件的工具.(dex2jar)   2、把jar反编译为java的工具.(JD-GUI)   反编译的步骤   1、从APK中提取classes.dex文件,对APK文件解压即可得到. 将其放到dex2jar的目录下,打开cmd,运行dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar.   2、运行JD-GUI工具,打开上面的jar文件,即可看到源代码.   HelloAndroid实例: java代码: package name.feisky.Android.test; import Android.app.Activity; import Android.os.Bundle; public class HelloAndroid extends Activity { public void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); setContentView(2130903040); } } 复制代码 其原程序为: java代码: package name.feisky.Android.test; import Android.app.Activity; import Android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 复制代码 Activity, 模拟器, 打包, Manifest, drawable 分享到: QQ好友和群 QQ空间 腾讯微博 腾讯朋友 收藏7 分享1 淘帖0 好评0 差评0 转发到微博 相关帖子 &#8226; 疯狂Android讲义原书及代码下载 &#8226; viewpage里面加载activity 并且交互 &#8226; android程序欢迎页面,让程序某个activity或dialog只在... &#8226; activity动态增加控件后如何保存? &#8226; 如果模拟器做TCP服务器,如何在真机或其他pc端通过TCP连接它 &#8226; genymotion模拟器跑百度地图demo报错 &#8226; 急用 速度求解 &#8226; 无法在Eclipse上打开android模拟器 &#8226; 《转载》通过包名打开另外一个应用程序和获取手机中已... &#8226; eclipse 中的Logcat能否同时监控多个手机终端或模拟器的输出? 举报 | 回复 共 33 个关于Android 程序反编译的回复 最后回复于 2013-12-17 22:12 fack_bucky 1主题79帖子293e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 推荐 fack_bucky No.2 初级开发者 发表于 2013-12-2 14:03:22 | 只看该作者 反编译这些东西怎么能进行自定义呢 举报 回复 支持 反对 Grubby_Huang 0主题272帖子109e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 推荐 Grubby_Huang No.4 中级开发者 发表于 2013-12-17 22:12:22 | 只看该作者 谢谢楼主分享,学习下 举报 回复 支持 反对 myg_315 7主题97帖子157e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 沙发 myg_315 No.3 秀才开发者 发表于 2011-10-29 19:20:27 | 只看该作者 给力,收藏了,自己也学学反编译! 举报 回复 支持 反对 Cappuccino207 2主题410帖子1248e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 板凳 Cappuccino207 No.5 砖家开发者 发表于 2011-10-31 16:14:54 | 只看该作者 只会使用工具反编译 举报 回复 支持 反对 include_2012 3主题55帖子55e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 地板 include_2012 No.2 初级开发者 发表于 2011-11-1 10:41:16 | 只看该作者 曾经这么干过,谢谢 举报 回复 支持 反对 zqding 0主题33帖子24e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 5楼 zqding No.2 初级开发者 发表于 2011-11-2 11:00:13 | 只看该作者 学习了 举报 回复 支持 反对 fjzzmike 4主题1259帖子1729e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 6楼 fjzzmike No.7 智尊开发者 发表于 2011-11-3 22:17:25 | 只看该作者 个人认为,至少应该学习一下反编译,为什么呢?别梦想反编译得到源码,UI是可以得到的,但反编译可以得到思路。 点评 zgf1991 public class HelloAndroid extends Activity { public void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); setContentView(2130903040); } 你好,我想问下 这里面的数字 = =如何确定是哪 详情 回复 发表于 2012-9-13 16:00 举报 回复 支持 反对 fjzzmike 4主题1259帖子1729e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 7楼 fjzzmike No.7 智尊开发者 发表于 2011-11-3 22:18:59 | 只看该作者 顺便说句,我到现在还一直在反编译,只要看到一个上眼的,马上反编译,看看人家怎么做的。 举报 回复 支持 反对 fly80802003 0主题25帖子20e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 8楼 fly80802003 No.1 开发小菜鸟 发表于 2011-11-5 09:23:59 | 只看该作者 只可惜现在有很多程序都自己用C编写了.so库文件封装了核心方法。system.load 加载了,你反编译也没用,看不到核心代码! 点评 lingfeng 嗯,呵呵,这倒是 详情 回复 发表于 2012-7-27 12:21 举报 回复 支持 反对 青子衿 0主题95帖子142e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 9楼 青子衿 No.2 初级开发者 发表于 2011-11-8 18:28:28 | 只看该作者 需要汇编相关知识吗??? 举报 回复 支持 反对 gzhguoguohong 0主题25帖子2e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 10楼 gzhguoguohong No.1 开发小菜鸟 发表于 2011-11-10 20:38:26 | 只看该作者 有现成的反编译工具吧 举报 回复 支持 反对 gaop 1主题15帖子324e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 11楼 gaop No.2 初级开发者 发表于 2011-11-11 15:37:38 | 只看该作者 大家有遇到过吗?AXMLPrinter2工具反编译很多布局XML时会出错: java.lang.ArrayIndexOutOfBoundsException: 150 at android.content.res.StringBlock.getShort(StringBlock.java:231) at android.content.res.StringBlock.getString(StringBlock.java:91) at android.content.res.AXmlResourceParser.getName(AXmlResourceParser.java:140) at test.AXMLPrinter.main(AXMLPrinter.java:56) 点评 koala6403 请问 你的目标xml也是在mac下开发的吗? 详情 回复 发表于 2012-2-9 17:39 举报 回复 支持 反对 liqiang8238 7主题174帖子84e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 12楼 liqiang8238 No.5 砖家开发者 发表于 2011-11-19 23:59:17 | 只看该作者 反编译可以看看人家的资源,代码基本上看不出来 举报 回复 支持 反对 不二庚庚 3主题611帖子852e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 13楼 不二庚庚 No.5 砖家开发者 发表于 2011-12-3 11:13:12 | 只看该作者 JD-GUI工具要是能把代码导出就好了! 举报 回复 支持 反对 songyqx 2主题265帖子135e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 14楼 songyqx No.4 中级开发者 发表于 2011-12-11 14:49:47 | 只看该作者 谢谢楼主分享,正在学习这块。。。。。。。。。。。。。 举报 回复 支持 反对 zijie405 0主题936帖子1512e币 加为好友 发送消息 访问博客 --> --> 个人资料 主题列表 发消息 15楼 zijie405 No.6 江湖开发者 发表于 2011-12-12 17:19:21 | 只看该作者 写的不错 对你的辛苦和奉献表示感激 举报 回复 支持 反对 123 / 3 页下一页返回列表 B Color Image Link Quote Code Smilies 高级模式 您需要登录后才可以回帖 登录 | 免费加入 本版积分规则 发表回复 回帖后跳转到最后一页 浏览过的版块 Android开发问题解答Android开发实例教程Android开发资料下载 赞 回复 点评 评分 版块推荐 新手导航 问题解答 源码下载 新手入门 实例教程 进阶分享 底层开发 人才招聘 项目外包 Cocos2d-x Unity3d UI资源 活动沙龙 查看全部论坛版块>> 常见环境搭建 JDK下载 ADT Bundle下载 Android Studio GoAgent翻墙 huhamhire翻墙 Genymotion git / github SDK / NDK Android API Guides Reference dex2jar / jdgui apktools 开源项目&框架 最新推荐 更多> 怎样根据一张漫画图片的空白隔把它切割成多张图片呢。listview点击某一行时,如何更改该行的图片????疯狂Android讲义原书及代码下载layer-list 【重叠图层】 层叠的shape开源库SlidingMenu初始化菜单?有没有做过有关音乐播放项目的大神,求助!!有么有关于医药方面的安卓源码,求个简单的,麻烦知道的告知下!socket编程,用setSoTimeout失效,read阻塞住,不报错有大神做过这样的界面没如何实现这种效果 联系我们|android培训|小黑屋|Archiver|手机版|eoe Android开发者社区 GMT+8, 2014-2-23 08:31 ( 京ICP备11018032 京公网安11010802011031 ) Powered by Discuz! X3.1 Comsenz Inc. 快速回复 返回顶部 返回列表