首页
社区
课程
招聘
简单的apk判定跳转修改
发表于: 2018-3-12 19:34 2881

简单的apk判定跳转修改

2018-3-12 19:34
2881

说在前面,这些是一些简单的判定修改总结,针对对象为apk的各类型本地验证,以简单例子说明。

基本思路:

(1)smali目录下存放了程序所有的反汇编代码。
(2)res目录则是程序中所有的资源文件。
(3)往往错误提示信息通常是关键代码的地方。
(4)在逆向的时候,先试用一下app对app有一个了解。
(5)在引用字符串的时候会在res/values目录下的string.xml文件中查找

第一种方法:条件修改

修改判定条件,例如将"否"修改为"是",


我们的目标就是向下执行,所以修改判定条件。

我们把if-ne v2,v3 :cond_4修改为if-eq v2,v3 :cond_4,这样就成功的修改了判定。

第二种方法:跳过判定

  我们在判定代码前执行跳转代码,或者将判定nop掉


  这样在执行过程中就不会执行判定语句,也就成功的跳过了判定。

第三种:跳转位置修改

这一种方法目的是修改判定后执行的方法体。



我们可以看到这个判定为假后执行cond_4,我们把cond_4修改为cond_X(不能与已存在的冲突)或其他,然后将cond_X放在目标代码前面,这样在判定为假后依然会执行目标代码。


最后一种就是修改方法体内容
比如说将目标方法体1的内容替换掉方法体2的内容,这样在执行过程中不论是方法1或者方法2,都将执行方法体1,常用于简单的单机游戏支付。

ps:本文测试的demo取自某博客,


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 4609
活跃值: (714)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
赞一个
2018-3-12 20:20
0
游客
登录 | 注册 方可回帖
返回