


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、吾爱破解安卓逆向入门教程(五)引用: 软件:计算管家 v3.4 目标:破解授权会员 目标软件验证方法:软件获取设备号号后调用支付宝进行付 费,付费成功后会返回对应参数,点击授权按钮后即完成付 费用户授权。实战目标: 点击授权按钮直接授权成功, 小雨之前也做过 3.3 的分析,我的手段比较简单,适合新手软件界面: 0x0 脱壳 本软件 v3.3 使用的爱加密壳, v3.4 使用的 360 壳, 不过对于 那些大鸟们来说,什么壳都没用,目前我们处于 smali 阶段, 不介绍壳的脱法, 不像 pc 破解一上来就告诉你如何脱壳, 后 面阶段,将会由 PoJie_小雨 给大家讲述脱壳实战。 0x1 运
2、 行软件找关键点 我们首先来到付费页面,如下图:开头中我已经讲过这个软 件的验证流程,既然这样,我们直接点击授权按钮观察有什 么关键点软件提示我们并没有获取授权,那么这类文字通常 会以文本形式写在 String.xml ,对应的布局文件或者以 unicode 形式写在 smali 中,对于游戏来说,这类可能是以图 片形式放在图片文件,或者自定义格式的文件,甚至是通过 网络获取的,我们了解之后,先尝试第一种,直接搜索 AndroidKiller 载入 apk 嗯,直接搜索到了,减少了我们很多 的工作量, 那么, 文本都有对应的 id ,我们再次搜索这个 id, 等等,我们好像发现了更重要的东西我
3、们看到了授权成功的 文字, 那么我们换思路, 直接搜索授权成功的 id 我们这里看 到了这个神奇的数字,新手相信都不知道这个玩意是怎么来 的,那么这里我稍微普及下, apk 在编写时,开发工具都会 对源代码自动编译, 生成对应的标示符 ,通过这些标示符, 来 引用对应的资源,详细一点的可以阅读这篇文章 尝 试破解我们接着搜索 0x7f080100 ,发现两处可疑处分别点进去看 看,顺便我们也记下授权失败的标示符, 0x7f080102 ,这里 我们可以方便我们判断这里我们看到的就是授权失败时弹 出的对话框, 我们找到它的标签是 :cond_1,接着我们向上翻, 看到哪些跳转会跳到 :cond_
4、1 ,我们来到方法的开始这是个接 收信息的方法,通常是由 handler 实现的,我们大体可以知 道,在付费成功后,会想这个函数传递一个message,这个方法就是判断传入的 message的值,通过这个值来判断是否 付费成功,这里我们看到一个 cond_3 ,我们找到: cond_3, 这里我们看到, 获取 res 资源中的 0x7f08011a,并转换为 string 类型,再传入到 Alertdialog 的 message中,我们看看它到底 调用了什么资源看到是这个,看来跟我们破解无关,跳过, 我们就直接针对这两个跳转即可如果 v1<=0 或者v1>v2 ,则跳转到: co
5、nd_1,我们不让它跳, 在 pc 破解中, 我们有两种方法, 一种是设置为相反的跳转, 另一种就是 nop 掉,lez 对应的就是 ge,不过这种方法不保险,我推荐第二 种,不走跳转,直接向下走 if 函数中的代码,我们删除这两 条即可,另一个 smali 修改方法类似,稍有出入接收传入的 message,判断 v0 是否等于 0x1b207 ,不等的话,跳转 到:cond_2,我们观察到,如果跳转的话,就会越过成功提示 的方法, 我们不能让它跳, nop 掉,下面一个跳转到: cond_1 的判断也一并删除,保存,打包测试。嗯,提示成功,那么 我们测试下付费用户的功能是否能够正常使用ok,
6、付费主题可以使用,说明我们破解成功了,那是不是就结束了呢?当 我们退出程序再进入的时候发现主题丢了,什么鬼?来到付 费页面,发现授权按钮又可以点击了,之前我们注意到,授 权成功后,按钮就会呈现灰色不可点击的状态,那说明了什 么,这个程序有重启验证! 0x3 突破重启验证 之前我们在尝试破解时,在成功函数中看到了这段信息,如 果是付费状态, “isDefaultTheme ”的值是 v1,在方法首可以 看到 v1 定义的是 1,这里是个 putBoolean ,即通过 Sharepreferences.editor 写入了 true,那么我们通过分析发现, 我们是在重启后丢失授权信息的,那验证方
7、法肯定在第一个 显示的页面被调用,我们找到程序的主页面所在的类,来到 HelloWorldActivity.smali 下,我们尝试搜索“ isDefaultTheme ”, 结果搜到好几个 mw_shl_code=java,true.method static synthetic d(Llongbin/helloworld/HelloWorldActivity;)V.locals 6 .prologue.line 3763iget-object v0, p0, Llongbin/helloworld/HelloWorldActivity;->cc:Landroid/cont ent/S
8、haredPreferences; const-string v1, alipay_appid const-string v2, 89d43e35dd25de5d2ce9334f2624d6a61345893a invoke-interface v0, v1, v2, Landroid/content/SharedPreferences;->getString(Ljava/lang/ String;Ljava/lang/String;)Ljava/lang/String; move-result-object v1const-string v0, :try_start_0iget-obj
9、ect v2, p0, Llongbin/helloworld/HelloWorldActivity;->cb:Landroid/cont ent/SharedPreferences; const-string v3, WWxoT2JnPT0= const-string v4, invoke-interface v2, v3, v4,Landroid/content/SharedPreferences;->getString(Ljava/lang/ String;Ljava/lang/String;)Ljava/lang/String; move-result-object v2i
10、nvoke-static v2,Llongbin/helloworld/hm;->b(Ljava/lang/String;)Ljava/lang/S tring;:try_end_0.catch Ljava/io/UnsupportedEncodingException;:try_start_0 . :try_end_0 :catch_0 move-result-object v0 :goto_0iget-object v2, p0, Llongbin/helloworld/HelloWorldActivity;->cb:Landroid/cont ent/SharedPrefer
11、ences; const-string v3, font_size const-string v4, 28invoke-interface v2, v3, v4,Landroid/content/SharedPreferences;->getString(Ljava/lang/ String;Ljava/lang/String;)Ljava/lang/String; move-result-object v2iget-object v3, p0,Llongbin/helloworld/HelloWorldActivity;->cb:Landroid/cont ent/SharedP
12、references; const-string v4, isDefaultTheme const/4 v5, 0x0invoke-interface v3, v4, v5,Landroid/content/SharedPreferences;->getBoolean(Ljava/lan g/String;Z)Z move-result v3 invoke-static v0, Llongbin/helloworld/m;->f(Ljava/lang/String;)Ljava/lang/Str ing; move-result-object v0 invoke-virtual v
13、0, v1, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 const-string v0, 24 invoke-virtual v2, v0, Ljava/lang/String;->equals(Ljava/lang/Object;)Zmove-result v0 if-eqz v0, :cond_0if-eqz v3, :cond_0new-instance v1, Llongbin/helloworld/gb;const v0,0x7f090027 sget
14、-object v2, Llongbin/helloworld/n;->h:I invoke-direct v1, p0, v0, v2, Llongbin/helloworld/gb;-><init>(Llongbin/helloworld/ HelloWorldActivity;II)Vsget-object v0,Llongbin/helloworld/n;->h:I :goto_1new-instance v2, Landroid/app/AlertDialog$Builder; invoke-direct v2, p0, Landroid/app/Ale
15、rtDialog$Builder;-><init>(Landroid/c ontent/Context;)V new-instance v3, Llongbin/helloworld/cg; invoke-direct v3, p0, v0, Llongbin/helloworld/cg;-><init>(Llongbin/helloworld/ HelloWorldActivity;I)V invoke-virtual v2, v1, v3, Landroid/app/AlertDialog$Builder;->setAdapter(Landroid
16、/w idget/ListAdapter;Landroid/content/DialogInterface$OnClickLis tener;)Landroid/app/AlertDialog$Builder; new-instance v0, Llongbin/helloworld/ch;invoke-direct v0, p0,Llongbin/helloworld/ch;-><init>(Llongbin/helloworld/ HelloWorldActivity;)Vinvoke-virtual v2, v0,Landroid/app/AlertDialog$Bui
17、lder;->setOnCancelListener(L android/content/DialogInterface$OnCancelListener;)Landroid/a pp/AlertDialog$Builder; invoke-virtual v2, Landroid/app/AlertDialog$Builder;->show()Landroid/app/Al ertDialog; return-void :cond_0new-instance v1, Llongbin/helloworld/gb; const v0, 0x7f090026 sget-object
18、v2, Llongbin/helloworld/n;->g:I invoke-direct v1, p0, v0, v2, Llongbin/helloworld/gb;-><init>(Llongbin/helloworld/ HelloWorldActivity;II)V sget-object v0, Llongbin/helloworld/n;->g:I goto :goto_1:catch_0move-exception v2goto :goto_0.end method/mw_shl_code 比如这样的,通过观察,我们发现这些方法都只是调用了 isDefaultT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全与信息技术2025年考试重点题目及答案
- 兰州职业技术学院《Hadoop大数据技术》2023-2024学年第二学期期末试卷
- 四川工业科技学院《微机原理与汇编语言》2023-2024学年第二学期期末试卷
- 2025年数据分析与处理职业考试试卷及答案
- 2025年注册会计师资格考试试卷及答案
- 2025年移动互联网应用开发职业考试试题及答案
- 2025年职业健康管理师考试试卷及答案汇编
- 山东省广饶一中2024-2025学年高三最后一卷化学试题文试题含解析
- 岐山县2025年小升初总复习数学精练含解析
- 江苏省句容市、丹阳市2024-2025学年第一次高中毕业生复习统一检测试题语文试题含解析
- 体外高频热疗的护理
- JGJ79-2012 建筑地基处理技术规范
- 海康威视校招在线测评题库
- 新编酒水知识与调酒
- 电网两票培训课件
- 班级管理《班主任经验交流》课件
- 预防机车车辆伤害培训课件
- 《土地集约利用》课件
- 2024老旧小区改造质量验收规范
- 小学英语(完整版)现在进行时练习题附答案
- 《画几何图形》教学课件
评论
0/150
提交评论