前往Shuct.Net首页

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

关于反编译的搜索

Apk文件破解反编译 - 月夜抚琴的日志 - 网易博客 网易 新闻 微博 邮箱 相册 阅读 有道 摄影 爱拍 优惠券 云笔记 闪电邮 手机邮 印像派 网易识字 更多 博客 手机博客 博客搬家 博客VIP服务 LiveWriter写博 word写博 邮件写博 短信写博 群博客 博客油菜地 博客话题 博客热点 博客圈子 找朋友 发现 小组 风格 网易真人搭配社区iStyle 把最美的记录工具,装进你的口袋 >> 把最美的记录工具,装进你的口袋 >> 把最美的记录工具,装进你的口袋 >> 创建博客 登录 加关注 显示下一条 | 关闭 温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》 | 关闭 *_* 生命不息 学习不止…… 导航 首页 日志 相册 音乐 收藏 博友 关于我 日志 Apk文件破解反编译 2011-06-08 15:19:09| 分类: 技术类 | 标签: |举报 |字号大中小 订阅 首先我们了解下什么是apk APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。 一个android的apk安装包文件结构 1. META-INF\ (注:Jar文件中常可以看到); 2. res\ (注:存放资源文件的目录) ; 3. AndroidManifest.xml (注:程序全局配置文件) ; 4. classes.dex (注:Dalvik字节码); 5. resources.arsc (注:编译后的二进制资源文件)。 了解了之后我们现在就开始来破解它。 为了方面大家理解,我下了个黄金矿工来图文并茂的给大家讲解,为了解决那些中文编码格式,我改名为 kg1.apk。 1. 获取apk的资源图片 绝得他图片不爽?到image目录下就能看到该程序使用的所有图片了如下图。 修改图片:命名还是用他的命名,因为程序中调用的就是这些图片,改了名字可能导致不能正常显示,建议图片大小和名字都和原来的相同。 2. 查看其他资源文件 直接用 WinRAR打开,res/drawable直接拖拽出来即可。如下图 但是我们不能直接查看,所以得用其他工具来弄下。继续往下看 3. 获取xml文件信息 虽然能用WinRAR看到里面的xml文件,但是xml是经过优化的,无法直接查看,所以我们需要使用apktool工具,下载地址:https://code.google.com/p/android-apktool/ 下载apktool-1.3.1.tar.bz2和apktool-install-windows-2.2_r01-2.tar.bz2 下载后,解压到同一个目录,然后把待破解的apk文件拷贝到同一目录,如下图 然后我们进入dos反编译。 DOS在cmd下进入apktool所在路径,然后输入apktool d "XXX1" "XXX2",XXX1指的是你要反编译的apk文件,XXX2指的是反编译后文件存放的路径, 如:apktool d "e:\apk-open\kg1.apk" "e:\apk-open\kg"就是把我e盘apk-open这个文件下的kg1.apk文件 反编译 到e盘apk-open\kg这个目录下。当看到baksmaling…等就表示正在反编译,如下面我dos窗口操作 4. 反编译dex获取Java源代码 这个是看源码最重要的,因为大多android的apk文件都是java编写的 Apktool工具只能反编译成smali的中间代码文件,这里需要借助另外一个开源工具:dex2jar, 下载地址:http://code.google.com/p/dex2jar/。 这个工具不能直接翻译成java文件,但是可以把dex文件转换成jar文件 然后可以通过jad工具把jar文件反编译成Java源文件, jd-gui下载地址:http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip 详细步骤: 解压apk文件,直接拖拽(rar解压软件),找到classes.dex文件 在cmd下进入dex2jar.bat所在路径, 然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk中的classes.dex文件所在路径及名称(classes上面解压得到), 如:dex2jar.bat e:\apk-open\kg1\classes.dex (ex2jar.bat后面有空格哦,路径后面不要打符号)就是把我e:\apk-open\kg1\classes.dex这文件给他弄成个一个jar文件,如下图 用jd-gui工具将jar文件反编译成java文件,选择保存所有,它会生成一个压缩文件,所有的源码都在这个压缩文件中,解压了就可以看到详细的代码了。 最后我们就可以随便弄这个东西了,如果你懂编程,那我们就给他弄到MyEclipse来看,来改,来看他的每个程序具体怎么实现的(因为没改包名,所以有红叉) 以上经过本机win7测试完全通过 ,希望对大家有帮助! 评论这张 转发至微博 转发至微博 阅读(3923)| 评论(7) | 分享到: 喜欢 推荐 3人 | 转载 历史上的今天 最近读者 热度 评论 this.p={ m:2, b:2, id:'fks_095064082086089074093087082095085081087066081087083069085', blogTitle:'Apk文件破解反编译', blogAbstract:' 首先我们了解下什么是apk APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,格式为apk。 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。', blogTag:'apk文件破解', blogUrl:'blog/static/1761515612011583199912', isPublished:1, istop:false, type:0, modifyTime:1317167635986, publishTime:1307517549912, permalink:'blog/static/1761515612011583199912', commentCount:7, mainCommentCount:4, recommendCount:3, bsrk:-100, publisherId:0, recomBlogHome:false, currentRecomBlog:false, attachmentsFileIds:[], vote:{}, groupInfo:{}, friendstatus:'none', followstatus:'unFollow', pubSucc:'', visitorProvince:'', visitorCity:'', visitorNewUser:false, postAddInfo:{}, mset:'000', mcon:'', srk:-100, remindgoodnightblog:false, isBlackVisitor:false, isShowYodaoAd:false, hostIntro:'', hmcon:'1', selfRecomBlogCount:'0', lofter_single:'' } {list a as x} {if !!x} {if x.visitorName==visitor.userName} {else} {/if} {if x.moveFrom=='wap'} {elseif x.moveFrom=='iphone'} {elseif x.moveFrom=='android'} {elseif x.moveFrom=='mobile'} {/if} ${fn(x.visitorNickname,8)|escape} {/if} {/list} {if !!a} ${fn(a.nickname,8)|escape} ${a.selfIntro|escape}{if great260}${suplement}{/if} {/if} {list a as x} {if !!x} ${fn(x.title,26)|escape} {/if} {/list} 推荐过这篇日志的人: {list a as x} {if !!x} ${fn(x.recommenderNickname,6)|escape} {/if} {/list} {if !!b&&b.length>0} 他们还推荐了: {list b as y} {if !!y} ·${y.recommendBlogTitle|escape} {/if} {/list} {/if} 转载记录: {list d as x} · ${x.referBlogTitle|escape} ${x.referUserName|escape} {/list} {list a as x} {if !!x} ${x.title|default:""|escape} {/if} {/list} {list a as x} {if !!x} ${x.title|default:""|escape} {/if} {/list} {list a as x} {if !!x} ${x.blogTile|default:""|escape} {/if} {/list} {list a as x} {if x_index>4}{break}{/if} {if !!x} ${fn1(x.title,60)|escape}${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')} {/if} {/list} {list a as x} {if !!x} ${fn(x.title,26)|escape} {/if} {/list} {if !!(blogDetail.preBlogPermalink)} ${blogDetail.preBlogTitle|escape} {/if} {if !!(blogDetail.nextBlogPermalink)} ${blogDetail.nextBlogTitle|escape} {/if} {list a as x} {if !!x} {if x.publisherUsername==visitor.userName} {else} {/if} ${fn(x.publisherNickname,8)|escape} {/if} {/list} 被推荐日志 最新日志 该作者的其他文章 博主推荐 随机阅读 首页推荐 更多>> {list a as x} {if !!x} ${x.nickName|escape} 投票给 {var first_option = true;} {list x.voteDetailList as voteToOption} {if voteToOption==1} {if first_option==false},{/if} “${b[voteToOption_index]}” {/if} {/list} {if (x.role!="-1") },“我是${c[x.role]}” {/if} ${fn1(x.voteTime)} {if x.userName==''}{/if} {/if} {/list} 页脚 公司简介 - 联系方法 - 招聘信息 - 客户服务 - 隐私政策 - 博客风格 - 手机博客 - VIP博客 - 订阅此博客 网易公司版权所有 ©1997-2014 帮助 ${u} {list wl as x} ${x.g} {list x.l as y} ${y.n} {/list} {/list} {if defined('wl')} {list wl as x}${x.n}{/list} {/if}