吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10789|回复: 163

[Android 原创] 《教我兄弟学Android逆向02 破解第一个Android程序 》

    [复制链接]
发表于 2017-10-9 17:13 | 显示全部楼层
本帖最后由 会飞的丑小鸭 于 2017-10-26 13:49 编辑

上一篇 《教我兄弟学Android逆向01 编写第一个Android程序 》我带你熟悉了Android编程的基础知识 课后给你留的作业你也发给我了  我看了你完成的不错 说明你对Android编程已经有了基础的了解 结合着上篇教程的那个Demo 我们今天就正式进入破解教程
在开始今天的教程之前我有个疑惑 就是上一个Demo编译出来是一个.apk文件 把这个文件用 adb install命令安装到手机上就可以点开运行了 现在我的手头只有这样一个apk文件  那么我怎么去破解它呢 也就是我输入错误的用户名和密码也可以登陆成功 我相信你应该和我也有同样的疑惑,但是不单单是我们吧 我们的前人很早以前就想到过这样的问题 然后他就自己写出来一个工具叫 Android killer  通过把这个.apk文件拉到他的软件中来 就可以把这个apk反编译成smali文件  然后去改这些一些smali文件 改好后重新打包成新的apk 就会生成一个和原来apk一样的新的apk 这个新的apk就是破解后的apk
那么我们是不是也可以写一款这样的软件呢 ?答案:可以 但是很花费时间 我因为想喝一杯牛奶就去养一头牛 太不值得对不对 我们不如直接去把别人家的牛迁过来 以后想什么时候喝牛奶直接挤就是了 那么牛在哪呢?
点击下面的链接下载软件 我们这里就把牛迁到我们家了。
链接:链接:http://pan.baidu.com/s/1skClh3f 密码:6u0q

一 分析
1. 牛虽然迁到我们家了 但是不听话呀,那我现在就让它听话好不好 ? 首先打开Androidkiller需要配置JDK的安装路径 下面是JDK下载的链接
链接:http://pan.baidu.com/s/1c1Ogeg4 密码:1nr6
01.png


2.把JDK的路径填好后 牛就听话了 然后就可以把我们的APK拉到我们的这款工具中来 (这里可能会出现一个小问题 如果把APK拉到软件中程序卡在 正在反编译APK源码请稍后.. 解决方式:重新打开软件,然后双击APK历史工程里面要打开的这个APK即可) 然后点击左边的入口就会打开MainActivity.smali
02.png

3.找到在MainActivity.smali中找到check方法 如果用户名或者密码有一个不对就会跳转到:cond_0出 然后执行下面的代码 也就是登陆失败! 这里会涉及到一些smali代码 smali代码不用去刻意学 这里看到不会的先自己百度然后结合着我下面的分析 自己去尝试着理解  这里的要求:把下面我分析的这些smali代码理解并且记住
03.png


4.用鼠标点击cond_0就能找到:cond_0位置 这个地方就是登陆失败
04.png





5.这里要补充两个smali指令 一个是if-eqz 另一个是if-nez 这两条指令是相对的
(1)if-eqz vA, vB, :cond_**"   如果vA等于vB则跳转到:cond_**
(2)if-nez vA, vB, :cond_**"   如果vA不等于vB则跳转到:cond_**


6.小总结
(1)首先程序把我们输入的用户名和密码给了p1和p2 然后把真正的用户名给了v0 再拿p1和v0对比 对比的结果放在v0中 如果这两个值不相等v0就等于0
(2)然后用if-eqz v0, :cond_0这条指令去判断v0是不是0 如果v0等于0  也就是用户名和密码不相等 就跳转到:cond_0位置 执行登录失败 否则继续往下面执行
(3)这里假设用户名输入正确了 程序往下继续执行 后面会进行同样的判断密码是不是相等 只有用户名和密码都是正确的 程序才不会跳转到:cond_0位置执行登录失败


7.结合着上面的总结那么思路来了 我如果不让程序跳转到:cond_0位置 让程序每次在if-eqz v0, :cond_0这条关键指令上继续往下执行 是不是就可以执行登录成功代码了?  那怎么能让它不跳转呢? 我现在有三种思路:
第一种 程序有两个if-eqz 分别是用来判断用户名和密码是否正确的 我把这两个if-eqz都改成if-nez  第二种 我直接把这两条指令删除掉 第三种也是最省事最懒的一种 我直接用goto语句直接一条指令让程序执行跳转登录成的代码 也是可以达到程序破解的目的 这里强调一个问题 修改完smali代码后一定要ctrl+s保存 不然程序还是拿原来的smali代码编译。
要求:这三种破解方式都要自己动手去做

05.png


8.最后smali修改完成后 把手机连到电脑上面  选择已找到设备  点击左上角的编译 编译完成后点击安装按钮 破解后的apk就成功安装到自己的手机上面了   然后输入错误的用户名和密码会提示登陆成功 说明破解成功
06.png

二. 结束
最后到本节课的课后作业了 我在吾爱里面找到一篇内购破解教程帖 本节课的作业是跟随此贴的教程完成破解 https://www.52pojie.cn/thread-632178-1-1.htm 当然教程讲的并没有这么详细 破解过程中遇到不懂得自己去百度 再不懂的就来问我 学习逆向就是这样 学不会就会感觉迷茫 但是不用怕 记住多迷茫几次就都学会了  每节课布置的课后作业一定要完成 课后作业都不做的话 那我的帖子你也不用继续跟了 学而不思则罔,思而不学则殆 ,不仅要完成还要能理解  这两节课给你讲了一些编程和破解的基础知识 当然这只是一个抛砖引玉的过程 那么下节课我将会找几个破解的例子带着你去练习

下一篇 《教我兄弟学Android逆向03 破解第一个Android游戏

本节课用到的Demo:
链接:http://pan.baidu.com/s/1cGYN5G 密码:lsnq
















免费评分

参与人数 72威望 +1 吾爱币 +78 热心值 +71 收起 理由
Kimipoker + 1 + 1 很不错一直跟着学
莫问刀 + 1 + 1 用心讨论,共获提升!
小瓜 + 1 + 1 热心回复!
河妖大大 + 1 + 1 用心讨论,共获提升!
bk少年 + 1 + 1 我很赞同!
shock-c + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
helloooworlddd + 1 + 1 用心讨论,共获提升!
流年柒梦 + 1 + 1 谢谢@Thanks!
iCode坏小孩 + 1 + 1 谢谢@Thanks!
peter_king + 1 谢谢@Thanks!
小小草 + 1 + 1 我很赞同!
nikita. + 1 + 1 我很赞同!
编草鞋的蚂蚱 + 1 + 1 我很赞同!
Dreamer + 1 + 1 谢谢@Thanks!
nu11.c + 1 + 1 谢谢@Thanks!
研究技术 + 2 + 1 一直都想学习安卓破解,可看别的教程又不会,跟你的教程学竟然学会了有成就.
ajzhiaizz + 1 + 1 坐等楼主更新
拂晓天涯 + 1 + 1 坐等更新!!!
h080294 + 1 + 1 热心回复!
风随 + 1 + 1 图文并茂,写的很详细,易懂
statue + 1 + 1 我很赞同!
siuhoapdou + 1 + 1 谢谢@Thanks!
丶咖啡猫丶 + 1 + 1 谢谢@Thanks!
zhaojunkai + 1 + 1 收藏收藏,搞完Linux就回来逆向。
流年回忆 + 1 + 1 谢谢@Thanks!
废宅小五 + 1 谢谢@Thanks!
kindiaing + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhenyan + 1 + 1 我很赞同!
js5201314 + 1 + 1 谢谢@Thanks!
mvm + 1 + 1 热心回复!
鬼狂 + 1 + 1 谢谢@Thanks!
小怪 + 1 + 1 谢谢@Thanks!
rig + 1 + 1 谢谢@Thanks!
zhizhizha + 1 + 1 谢谢@Thanks!
KingUV + 1 + 1 我很赞同!
netle8 + 1 + 1 谢谢@Thanks!
zzbb0011 + 1 + 1 谢谢@Thanks!
superzhangxue + 1 + 1 热心回复!
qaz003 + 1 + 1 用心讨论,共获提升!
linlyv + 1 + 1 热心回复!
qtfreet00 + 1 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
maloneshaw + 1 + 1 热心回复!
永恒篆刻 + 1 + 1 用心讨论,共获提升!
keliali + 1 + 1 谢谢@Thanks!
WqiancangQ + 1 + 1 热心回复!
zouxm2008 + 1 + 1 热心回复!
rnwoshiwo + 1 + 1 正需要这样实在、实用的教程,谢谢
alexkaer + 1 + 1 谢谢@Thanks!
hnicypb + 1 + 1 谢谢@Thanks!
pzhzshun + 1 谢谢@Thanks!
昂电工 + 1 + 1 热心回复!
真爱贤 + 1 + 1 用心讨论,共获提升!
gyf烛光 + 1 + 1 热心回复!
sunnylds7 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xiaoxi2011 + 1 + 1 谢谢@Thanks!
Amanda小黑 + 1 + 1 我很赞同!
anmingyu777 + 1 + 1 谢谢@Thanks!
e5500236 + 1 已答复!
离尘子 + 1 + 1 用心讨论,共获提升!
resote + 2 + 1 赞一个,适合新手的教程
jacklee2014 + 1 + 1 谢谢@Thanks!
Ventus + 1 + 1 用心讨论,共获提升!
e007 + 1 + 1 我很赞同!
cmjs + 1 + 1 我很赞同!
Eternity-Myth + 1 + 1 谢谢@Thanks!
xaoxao + 1 热心回复!
关谷神奇的小号 + 1 + 1 我很赞同!
qjf5202015 + 1 + 1 用心讨论,共获提升!
zhoujun0814 + 1 + 1 谢谢@Thanks!
BYD-唐 + 1 + 1 谢谢@Thanks!
小飞鸟 + 1 + 1 热心回复!
Mikoto + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-24 12:01 | 显示全部楼层
当前 Apktool 使用版本:Android Killer Default APKTOOL
正在编译 APK,请稍等...
>I: Using Apktool 2.2.4
>I: Smaling smali folder into classes.dex...
>..\..\projects\fgdtk_1.1.0.140\Project\smali\com\turbochilli\rollingsky\pay\OppPay$2$1.smali[176,0] Cannot get the location of a label that hasn't been placed yet.
>Exception in thread "main" brut.androlib.AndrolibException: Could not smali file: com/turbochilli/rollingsky/pay/OppPay$2$1.smali
>        at brut.androlib.src.SmaliBuilder.buildFile(SmaliBuilder.java:75)
>        at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:59)
>        at brut.androlib.src.SmaliBuilder.build(SmaliBuilder.java:36)
>        at brut.androlib.Androlib.buildSourcesSmali(Androlib.java:423)
>        at brut.androlib.Androlib.buildSources(Androlib.java:354)
>        at brut.androlib.Androlib.build(Androlib.java:310)
>        at brut.androlib.Androlib.build(Androlib.java:267)
>        at brut.apktool.Main.cmdBuild(Main.java:230)
>        at brut.apktool.Main.main(Main.java:83)
APK 编译失败,无法继续下一步签名!



老大 有空请回复一下!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-11-22 18:43 | 显示全部楼层
最后编译时一直报错,就算我一个字都没有改还是报错。
当前 Apktool 使用版本:Android killer Default APKTOOL
正在编译 APK,请稍等...
>I: 使用 ShakaApktool 2.0.0-20150914
>I: 编译 smali 到 classes.dex...
>I: 正在编译资源...
>I: Can't set aapt binary as executable
>Exception in thread "main" com.rover12421.shaka.b.l:
>        at com.rover12421.shaka.a.b.g.a(Unknown Source)
>        at b.a.d.a.a(Unknown Source)
>        at b.a.a.b(Unknown Source)
>        at b.a.a.a(Unknown Source)
>        at b.a.a.e(Unknown Source)
>        at b.a.a.a(Unknown Source)
>        at b.b.a.b(Unknown Source)
>        at b.b.a.a(Unknown Source)
>        at com.rover12421.shaka.cli.Main.main(Unknown Source)
>Caused by: com.rover12421.shaka.b.l: Can't set aapt binary as executable
>        at b.a.d.a.a(Unknown Source)
>        at b.a.d.a.d(Unknown Source)
>        at b.a.d.a.a(Unknown Source)
>        at b.a.d.l.a(Unknown Source)
>        at org.c.b.b.c.a(Unknown Source)
>        ... 9 more
>Caused by: java.lang.NullPointerException
>        at org.b.a.b.b.a(Unknown Source)
>        at org.b.a.b.b.b(Unknown Source)
>        at org.b.a.b.b.a(Unknown Source)
>        at com.rover12421.shaka.b.f.a(Unknown Source)
>        at com.rover12421.shaka.b.j.a(Unknown Source)
>        at com.rover12421.shaka.b.j.c(Unknown Source)
>        at com.rover12421.shaka.b.j.a(Unknown Source)
>        ... 14 more
APK 编译失败,无法继续下一步签名!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 17:15 | 显示全部楼层

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 17:16 | 显示全部楼层
厉害了啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 17:30 | 显示全部楼层

强势围观一波

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 17:38 | 显示全部楼层
smail讲解很详细,支持楼主

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 17:40 | 显示全部楼层
不错啊。适合新手入门啊、!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 18:08 | 显示全部楼层
看着头疼!!!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 18:15 | 显示全部楼层
可以  继续加油

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 18:30 | 显示全部楼层
等了好久了,终于更新了。

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

发表于 2017-10-9 18:45 | 显示全部楼层
谢谢楼主分享,很全面的教程,学习学习

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2017-12-13 09:16

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表