上一次调试各种手抖F9跳过了许多关键内容,这次继续。

case31分支

case31分支中每一次设置的LR寄存器地址都不一样,反调试验证等手段大都在这里进行跳转。

1:

验证加载的so文件是不是libjiaguXXX.so

单步跟,一直到case32中进入函数sub_75CEA9FC里发现处理结果的分支:

R4跳转为raise函数,向进程自己发送SIGKILL(9)信号来终止进程。但是我们这里加载的是正确的so文件,tst指令结果为0,跳过了这里。

2:

获取时间戳,猜测是获取执行时间差来判断是不是被调试了,那就让time()返回0就好了

3:重调用外围函数_Z10__arm_a_21v
4、5:memcpy

6:解密字符串

sub_75CEBF2C,说明前面从so文件某处拷贝加密的字符串,在这里解密。


解密函数在后面还有多次用到:

BYTE * sub_75CEBF2C(BYTE *result, int a2)
{int v2; // r2if ( a2 ){v2 = (int)&result[a2];do{*result = ~(*result ^ 0x5A);++result;}while ( result != (BYTE *)v2 );}return result;
}

/system/bin/linker里有什么东西呢- -,在模块里找到了它

上次没搞懂,这次找到了这个rtld_db_dlactivity

rtld_db_dlactivity函数默认情况下为空函数,当有调试器时将被改为断点指令。Android反调试对抗中,SIGTRAP信号反调试可通过判断该函数的数值来判断是否处于被调试状态等,所以必要时需要将该函数对应的寄存器的值修改为0。

7:

解密字符串rtld_db_dlactivity

8:遍历符号表获取rtld_db_dlactivity地址


打开maps文件寻找/system/bin/linker模块,找到rtld_db_dlactivity。
把DE 10修改为nop指令 C0 46或者00 00(0xDE10为thumb breakpoint)

9:读取rtld_db_dlactivity

sub_75CE73E4函数读取文件内容

此时该地址在上一步已经被手动修改为00

单步跟踪,到case32 - sub_75CEA9FC,又是熟悉的分支,此时R4为__stack_chk_fail,不过我们验证通过了。

10、11: _Z10__arm_a_20v函数TracerPid反调试

上一篇中有提到过,这里手动修改TracerPid为0
12:getpid,后续操作没有跟出来。。

在这里判断,R1&0x40000000!=0,会跳转到R4,修改为0

case40,Debugger: thread 406 has exited (code 0)!

重开这次不修改上一步中的R1,r4为:

随后再次进入case31:sub_75CEDCE4。

跳过了退出,再次进入case31,sub_75CEDD20:解密了一些函数名字符串

跟了不知道多少次BLX LR跳转到了这里sub_75CE7C84:

通过uncompress函数解压libz.so文件并解密找到对应的JNI_Onload函数,主要作用就是动态注册那些被native的函数。
至此全部反调试都应该没了,一直下断点跟踪调试。

在内存中找到最新的区段,dump出来。

360加固分析(二)相关推荐

  1. 360加固分析(一)

    分析某个app,发现加了360的壳, 一 准备 调试之前的准备工作 adb shell am start -D -n 包名/MainActivity路径名 adb forward tcp:23946 ...

  2. 根据”so劫持”过360加固详细分析

    参考:https://bbs.pediy.com/thread-223699.htm http://blog.csdn.net/luoshengyang/article/details/8923483 ...

  3. 最强打包插件,支持fir,蒲公英上传, 360加固 ,自动生成二维码

    文章目录 序言 说明 效果 使用 下载demo 导入文件 文件内容说明 配置gradle 配置gradle.properties 文件位置 内容 项目中配置 补充说明 1.360加固配置 2.curl ...

  4. Android分析破解-秒脱360加固大法

    Android相比iOS,安全问题往往比较突出,各种漏洞和破解层出不穷.对破解方法的了解,能在开发中进行预防,加强应用的安全性.本系列文章会对Android应用的破解和保护两方面做个探讨,给开发的同学 ...

  5. android加固多渠道,Android 多渠道打包(使用友盟统计,结合360加固宝进行多渠道打包)...

    如有不正确的地方,望各路小哥哥.小姐姐指点,小女子在此谢过(*^__^*) 嘻嘻-- 一般app做推广的时候都需要渠道包,方便分析数据,查看渠道质量 一.先去友盟平台申请一个appkey a.   a ...

  6. 360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”

    0x00 寻找突破口 打开首页,emm 就一个登录页面,没了 随便写点东西提交看看 天生手欠的我一不小心就多输了一个单引号 WDNMD,除了数字和字母其他都不行? 这叫我怎么测? 刚刚要放弃,就在这时 ...

  7. uniapp 安卓app 实现app加固(360加固)

    首先了解一下为什么要进行加固? 移动应用中储存着不少数据,为保障APP的安全,除了定期对其进行安全检测外,还做好安全加固工作,防止二次打包.防止篡改.防止被破解等等,提前进行加密加固工作,保障开发者和 ...

  8. 【安卓逆向】360加固-脱壳修复

    最近花了一些时间学习逆向脱壳,这方面一直投入的时间比较少.样本经过某加固宝进行加固,这里简单记录一下脱壳过程和思路,感谢某数字公司对安全加固的无私贡献,让我有机会小小的提高一下这方面的技能. *安卓逆 ...

  9. 360加固签名验证_360加固助手加固应用并自动签名的方法

    360加固助手加固应用并自动签名的方法!360加固助手是一款最专业的安全保护加固助手,专为软件应用开发者量身打造的apk加固软件,它可以有效的防止应用软件被逆向分析.反编译.二次打包等才做,不过很多很 ...

最新文章

  1. iOS动画开发之五——炫酷的粒子效果
  2. 自定义MIME类型支持FLV的相关设置
  3. 《THE LEAN STARTUP》 《精益创业》
  4. 【LeetCode】002 Add Two Numbers
  5. java中Runnable和Callable的区别
  6. python中字符串添加r的作用,原始字符串不发生转义
  7. laravel商品图片怎么展示_如何使用Laravel图片处理包intervention-image
  8. python 输出纯音频_Python如何录制系统音频(扬声器的输出)?
  9. 用Python玩连连看是什么效果?
  10. Spring框架----Spring框架的基本概念
  11. 暴风影音皮肤_暴风影音16周年纪念版 v9.04
  12. CSS3 Shape详解
  13. linux c语言 修改mac地址,C语言根据MAC地址查找网卡并修改IP地址
  14. 51个最佳jQuery教程和示例
  15. python 华为交换机自动配置_对python连接华为交换机批量配置优化
  16. eclipse如何配置工作环境
  17. 自定义View时,用到Paint Canvas的一些温故,PropertyAnimation中的ValueAnimator(动画四,“大大姐”的旋转跳跃no.2)
  18. linux--- 连接数据库
  19. 什么是高耦合低内聚?
  20. Creo4.0管道管线设计视频教程

热门文章

  1. 有人问我:除了机房工程,你还懂什么?我笑了
  2. php 图片库 加星,PHP使用imagick_st类库把JPG生成GIF动画图片
  3. ML之LassoRRidgeR:基于datasets糖尿病数据集利用LassoR和RidgeR算法(alpha调参)进行(9→1)回归预测
  4. 成功解决TypeError: take() got an unexpected keyword argument ‘fill_value‘
  5. DayDayUp之Job:牛客网—算法工程师—剑指offer之66道在线编程(解决思路及其代码)——41~66
  6. AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
  7. AtCoder Regular Contest 092 Two Sequences AtCoder - 3943 (二进制+二分)
  8. CentOS通过日志反查入侵(转)
  9. adb提取安装的apk
  10. Headmaster's Headache