Android逆向学习(三)vscode修改smali绕过vip
# Android逆向学习(三)vscode修改smali绕过vip## 写在前面
这是吾爱的第二个作业,主要就是要修改smali代码,其实smali代码我感觉没有必要去学,当然主要是我本来就会汇编语言,基本上汇编语言都是一样的,我是了解过mips,x86,jimple的,不管是mips还是smali还是x86的或者jimple,主要就是最寄存器的一些操作,格式也都差不多,简单学一下就可以上手
## 修改判断绕过vip
还是老样子,我们直接逆向后找到第二个挑战
事实上这个挑战我感觉更加简单,所以大概率这篇博客看起来像是一个水文
### 1、任务目标
!(https://cdn.jsdelivr.net/gh/RytterMohn/img/20230903215211.png)
这一个挑战的目标就是实现投币的一键三连,但是三连的话需要有一个大会员判断,我们这一次的任务就是绕过这个大会员
### 2、代码分析
我们直接使用之前的代码逆向软件,逆向后找到这个activity。然后看看这个代码的逻辑是怎么样子的
!(https://cdn.jsdelivr.net/gh/RytterMohn/img/20230903215444.png)
这时候可以直接使用smali2java这个插件查看反编译的java代码,但是缺点就是没法直接改java代码然后逆向回去,这里点名表扬一下dnspy这个软件,这是个专门对.NET进行逆向的一个软件,这个软件就可以直接修改代码后重新编译回去
然后查看代码结构我们发现他就是通过isvip这个函数判断是不是大会员,这里其实有两个方法,一种是改变判断条件,一种是改变返回值,这个只需要简单学一下smali代码的语法就可以了,我选择的是第二种,这种更加简单
我们通过查看代码发现isvip是只会返回一个false,我们就把它换成true就可以了
然后我们很快就发现这个代码了
```java
.method public final isvip()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
```
### 3、代码修改
然后我们将这个代码修改为这样
```java
.method public final isvip()Z
.locals 1
const/4 v0, 0x1
return v0
.end method
```
把0x0换成0x1,就相当于永远返回true了
然后我们重新打包一下,然后签名安装
### 4、结果
!(https://cdn.jsdelivr.net/gh/RytterMohn/img/20230903222258.png) 这是什么活动的作业呀? 谢谢你让我觉得很简单{:301_988:} 原来是正己大大的教程的,哈哈哈,支持支持:victory: 小木曾雪菜 发表于 2023-9-4 14:31
这是什么活动的作业呀?
你好,是吾爱android逆向课程的作业,正己大大的教程 最近也了解了一点汇编 感谢分享 用的什么插件 厉害啊, 楼主用的什么发行版? 看着像GNOME桌面 DYTRemix 发表于 2023-9-5 13:51
厉害啊, 楼主用的什么发行版? 看着像GNOME桌面
你好,我使用的是ubuntu 22.04,相比之下ubuntu用的人最多,有问题的话查解决方法也很方便{:301_975:}
页:
[1]
2