360加固分析(一)
分析某个app,发现加了360的壳,
一 准备
调试之前的准备工作
adb shell am start -D -n 包名/MainActivity路径名
adb forward tcp:23946 tcp:23946
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
二 分析jiagu.so
加载完jiagu.so文件后,断在了linker区段
JNI_OnLoad处下断点断下后单步调试:_Z9__arm_a_1P7_JavaVMP7_JNIEnvPvRi ——> _Z9__arm_a_0v
——> _Z10__fun_a_18Pcj
函数 _Z10__fun_a_18Pcj流程图:
switch语句总共有四十多个case,不知道哪个是关键,全部case分支都下断点,n次F9后发现每一次分发都会经过case41。在加载完jiagu.so后,跟踪mmap函数,没有跟出内存中解密释放dex文件就已经崩溃了,所以还需要通过反调试。
三 反调试
单步调试,在 中发现了这个
当R1与0x40000000结果不为零时会跳转到R4,R4此时为退出进程或者堆栈平衡检查失败等函数,需要注意。
第n次进入case31时,BL LR跳转到这里
读取/proc/self/maps,循环对比每次获取到的模块信息,是否包含“/system/bin/linker”,然后手快F9过了。。。
- TracerPid
继续F9,每次进入Case31分支都需要查看或进入bl Lr。
第N次bl lr指令,LR:_Z10__arm_a_20v:
读取/proc/pid/status文件中的TracerPid字段值
循环获取本进程的status信息,adb命令对比查看:cat /proc/xxxxx/status
获取到tracerID后则跳出循环压栈保存,之后又是N次F9,
或者暂时去除case31外断点。再一次在case31断下。
此时r0为TracerPId,如果id不为0说明正在被调试,我把他修改为0。
同时查看LR寄存器地址为函数strtol,字符串转整形。
- 端口检查
打开/proc/net/tcp 获取文件指针,每次获取一行对比是否包含调试默认端口5D8A(23946),所以开启android_server时设置自定义端口为23333。
360加固分析(一)相关推荐
- 360加固分析(二)
上一次调试各种手抖F9跳过了许多关键内容,这次继续. case31分支 case31分支中每一次设置的LR寄存器地址都不一样,反调试验证等手段大都在这里进行跳转. 1: 验证加载的so文件是不是lib ...
- 根据”so劫持”过360加固详细分析
参考:https://bbs.pediy.com/thread-223699.htm http://blog.csdn.net/luoshengyang/article/details/8923483 ...
- Android分析破解-秒脱360加固大法
Android相比iOS,安全问题往往比较突出,各种漏洞和破解层出不穷.对破解方法的了解,能在开发中进行预防,加强应用的安全性.本系列文章会对Android应用的破解和保护两方面做个探讨,给开发的同学 ...
- android加固多渠道,Android 多渠道打包(使用友盟统计,结合360加固宝进行多渠道打包)...
如有不正确的地方,望各路小哥哥.小姐姐指点,小女子在此谢过(*^__^*) 嘻嘻-- 一般app做推广的时候都需要渠道包,方便分析数据,查看渠道质量 一.先去友盟平台申请一个appkey a. a ...
- Android逆向之路---脱壳360加固
前言 众所周知,现在软件在防止逆向采取了混淆,加壳等措施.比如360加固,腾讯加固,梆梆加固等等. 这两天在逆向一款app的时候找到了一个不错的xposed插件推荐给大家, 下载地址:点我下载 < ...
- 360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”
0x00 寻找突破口 打开首页,emm 就一个登录页面,没了 随便写点东西提交看看 天生手欠的我一不小心就多输了一个单引号 WDNMD,除了数字和字母其他都不行? 这叫我怎么测? 刚刚要放弃,就在这时 ...
- uniapp 安卓app 实现app加固(360加固)
首先了解一下为什么要进行加固? 移动应用中储存着不少数据,为保障APP的安全,除了定期对其进行安全检测外,还做好安全加固工作,防止二次打包.防止篡改.防止被破解等等,提前进行加密加固工作,保障开发者和 ...
- 360加固android app反编译,apk360加固脱壳
360加固保动态脱壳,360加固保带给我们的惊喜,360加固脱壳工具,apk360加固脱壳 360 加固后的 apk,在 arm 设备上首先会将 assets 目录下的 libjiagu.so 拷贝到 ...
- 360加固之libjiagu.so脱壳及dex dump
360加固后的apk,在arm设备上首先会将assets目录下的libjiagu.so拷贝到files目录下,然后通过libjiagu.so动态加载原始dex libjiagu.so的init_pro ...
最新文章
- CTF-密码学-攻防世界-幂数加密(云影加密)解密脚本
- Spring Boot-@PropertySource注解
- jdk安装失败_windows配置安装单个Tomcat
- 接入网NFV引入路径:CPE、OLT和BNG或将率先云化
- 将windows项目移植到linux上
- java 遍历 Map 的六种方式 学习笔记
- 【转】CSS3学习笔记 之 动态伪类选择器
- 实时操作系统分类、特点及实现原理
- 【面试】前端面试人事问题
- chrome内核浏览器调用本地exe客户端
- 风险预测模型_【期刊导读】侯金林教授团队发表全球首个跨病因和跨种族的慢性肝病患者肝癌风险预测模型——aMAP评分...
- 概率论复习笔记一——伯努利实验及相关的概率分布
- unity不规则点击_【Unity游戏开发】UGUI不规则区域点击的实现
- 基于Python的学生求职招聘系统Django企业招聘系统(源码调试+讲解+文档)
- python结合正则表达式及校验码生成算法校验:电话号码、营业执照、组织机构代码证、税务登记证、统一社会信用代码证、非盈利性企业登记证号码的函数
- iMindMap12免费下载安装激活教程及如何免费用思维导图学习
- win8 性能测试软件,Win10/Win8.1/Win7全方位性能评测大揭秘(3):应用性能
- 汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- linux shell脚本
- UR10机械臂+Realsense手眼标定
热门文章
- 全球最美的15座数据中心
- dcdc模块降额设计_模块电源应用设计的可靠性和注意事项
- 成功解决ValueError: cannot convert float NaN to integer
- DL之随机性:理解和探究采用深度学习算法预测时导致多次运行结果不一致的问题
- ML之相似度计算:图像数据、字符串数据等计算相似度常用的十种方法简介、代码实现
- Crawler:基于BeautifulSoup库+requests库+伪装浏览器的方式实现爬取14年所有的福彩网页的福彩3D相关信息,并将其保存到Excel表格中
- Py之itchat:python库之itchat的简介、安装、使用方法之详细攻略
- 蓝桥杯题_ALGO11_瓷砖铺放
- 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。...
- Redis与Memcached汇总