python修改app定位_5种萌新技巧定位APP_SIGN代码
光说不练假把式,
这里以商业APPX红书APP为例,
分析的开始是用Charles,
先抓一个电话号密码登陆的POST包.
1.png (35.25 KB, 下载次数: 1)
2020-5-8 01:53 上传
2.png (36.85 KB, 下载次数: 2)
2020-5-8 01:53 上传
编写FRIDA HOOK JAVA MAP并输出KEY VALUE的脚本,
把APP停在登陆界面,
随便输一个账号密码但是不点登录,
先运行该脚本,再点击登陆按钮,
等APP出现号码错误的反馈后,
在终端立刻运行exit退出FRIDA,
看输出了什么内容.
直观的就看到了POST包中的各个字段关键字,
虽然没看见SIGN,但仔细看看下面那个xy-common-params,
3.png (61.8 KB, 下载次数: 1)
2020-5-8 01:54 上传
4.png (126.36 KB, 下载次数: 2)
2020-5-8 01:54 上传
5.png (141.49 KB, 下载次数: 2)
2020-5-8 01:54 上传
联想SIGN的生成方式(SIGN==字段组合串的摘要值)
它应该就是SIGN前的字段组合了,这部分调用9999999%会相当的接近SIGN关键代码.
这运气真的不错,一上来就蒙对了(你不蒙对怎么拿他水一贴...)
渐入佳境,开始输出更详细的HOOK信息,
尝试通过查看MAP的调用栈去找SIGN生成的代码.
在上面的FRIDA代码基础上稍微修改一下,
这次把调用栈给打印出来
6.png (68.88 KB, 下载次数: 1)
2020-5-8 01:54 上传
成功输出了详细信息,
但是傻眼了,没完全法看.
得想个办法,把信息保存到本地,格式化再查看它.
7.png (143.6 KB, 下载次数: 3)
2020-5-8 01:54 上传
要写FileStream之类的东西把消息保存到手机吗?
然后再拖到电脑上查看?或者传送到Python?
我知道你们懒,我也很懒,不喜欢学python和别的frida api.
所以这里介绍一个,不写代码直接保存成文件的偷懒方式.
windows上cmder这个终端软件,
可以把所有输出过的命令保存成文件,
按照如图所示勾选log console output选项,
下面填一个日志路径,点保存即可,
这样每次打开一个终端,
就会自动生成一个新的独立的日志文件,
敲过的命令和输出都自动保存在里面.
8.png (112.12 KB, 下载次数: 2)
2020-5-8 01:54 上传
9.png (108.35 KB, 下载次数: 2)
2020-5-8 10:40 上传
用VSCODE打开日志文件,
根据自己显示宽度选换行或不换行,
可以直观的看日志了.
10.png (169.73 KB, 下载次数: 2)
2020-5-8 01:54 上传
stack部分,这换行都没有,还是没法看.
不要慌,下面把stack这部分字符串粘贴出来,
扔进JAVA里,写一句helloworld级别的代码,
就可以看了.
11.png (160.38 KB, 下载次数: 2)
2020-5-8 01:54 上传
12.png (104.88 KB, 下载次数: 2)
2020-5-8 01:54 上传
怎么样?
佩服不佩服我的偷懒技术?
不写代码就把这个调用栈给格式化可视化了.
有水友要问了,费了半天力气,这东西有什么用?
大家不要慌.听我说(手动狗头)
这个SIGN代码, 99999%逃不出这MAP.PUT的调用栈,
别看他栈很深,排除掉那种okttp和java的公共代码,
剩下的用户类没有几个,
挨个翻一下就能找到了,稳住.
13.png (117.74 KB, 下载次数: 3)
2020-5-8 01:54 上传
去掉okhttp 去掉java.util,剩下13个类,
接下来挨个看一遍,就完事了.
什么?要看代码?好难,想偷懒.
知道你们懒,我也很懒...
这里介绍一个不用看代码的方法,
其实只要看代码顶部的导包,
有没有例如
import java.util.LinkedHashMap;
import java.util.Map;
有没有出现map就行了,没有的话直接看下一个.
14.png (52.04 KB, 下载次数: 2)
2020-5-8 01:54 上传
当你感到绝望,却坚持到底,
搜到com.xingin.skynet.g.b.intercept的时候,
会惊声尖叫,谁是最可爱的代码?是他是他就是他.
15.png (51.79 KB, 下载次数: 1)
2020-5-8 01:54 上传
16.png (58.38 KB, 下载次数: 2)
2020-5-8 01:54 上传
17.png (57.4 KB, 下载次数: 3)
2020-5-8 01:54 上传
18.png (56.81 KB, 下载次数: 1)
2020-5-8 01:54 上传
到这里,这个四两拨千斤精准HOOK定位SIGN的实战就结束了,
还有一些要补充下,为什么不在JS里通过代码,把日志文件保存到手机?
其1,因为要介绍点不一样的技巧,
其2,萌新写多了代码会出BUG,不写或者少写就解决问题,美哉.
其3,萌新想偷懒,不想学更多FRIDA_JS_API和Python.
其4,公共API调用频繁,尤其是String等类包,
在大型商业APP中,HOOK几个公共API类以后,
只是输出参数都可能会卡,python send()也很卡.
python修改app定位_5种萌新技巧定位APP_SIGN代码相关推荐
- 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...
北京千锋互联科技有限公司成都分公司骆昊(jackfrued)在Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅. 简单的说,Python是一个"优雅& ...
- python修改app定位_appnium定位+操作方式(python)
1.定位: A.利用 Android UIAutomator定位: 例: driver.find_element_by_android_uiautomator('new UiSelector().de ...
- python最简单单例模式_5种Python单例模式的实现方式
本文为大家分享了Python创建单例模式的5种常用方法,供大家参考,具体内容如下 所谓单例,是指一个类的实例从始至终只能被创建一次. 方法1: 如果想使得某个类从始至终最多只有一个实例,使用__new ...
- python新手入门到放弃_python萌新:从零基础入门到放弃
原标题:python萌新:从零基础入门到放弃 不管是在什么领域,自学者都占绝大多数,你说自学可以吗?可以,没问题的,只需要你具备以下几点最基础的能力: 第一点:天赋.对于python而言其实是非常需要 ...
- python语法报错原因_python萌新最常见5大错误
Python 小萌新最常见 5 大错误的: 1. invalid syntax 报错原因:语法错误 首先这个时候需要检查语法是否有用错,如果报错行没有发现错误,通常在相 邻行会出现问题,这个时候就要检 ...
- Python 修改文件内容3种方法(替换文件内容)
一.修改原文件方式 def alter(file,old_str,new_str):"""替换文件中的字符串:param file:文件名:param old_str:就 ...
- Python修改文件的两种方法
目录: 一.以占用内存的方式修改文件 二.以占用硬盘的方式修改文件 引言 文件修改的方法从操作方式上大致可以分为两类,一种是以占用电脑内存的方式,将文件读取到内存中修改再存回硬盘:第二种方法是分别打开 ...
- python快乐编程—基础入门-从萌新到大神必读书籍 《Python快乐编程基础入门》...
2019年,全球信息化进程持续加快,IT行业繁荣发展.作为新时代IT人,不仅需要强大的理论知识,更需要过硬的技术.Python作为最受欢迎的编程语言之一,作为人工智能时代的首选语言,因其受众多.用途广 ...
- termux运行python文件知乎_(萌新、小白看过来!)最详细、完整的基于安卓手机使用Termux搭建web服务器教程!...
三.Termux搭建WEB服务器所需的软件及配置(分3步,Termux中下载) 1.php a.下载php pkg install php b.开启php自带的web服务器并指定建站系统文件夹(-t ...
- python直方图分箱_5种方法教你用Python玩转histogram直方图
作者:xiaoyu 微信公众号:Python数据科学 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是matplotlib,seaborn 等 ...
最新文章
- jQuery.fly插件实现添加购物车抛物线效果
- NIOS2随笔——DMA(1)
- IDE to AHCI/RAID 蓝屏补丁
- EOS账户系统(7)权限评估
- HTML与XHTML的区别
- iOS Social框架
- 从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...
- 解决浏览器无法登陆pki问题,删除浏览器缓存
- ASN.1编解码:asn1c的基本使用
- PyTorch实战福利从入门到精通之二——Tensor
- 使用drawBitmapMesh扭曲图像
- PHP网站安全日志系统开发与部署
- cmd查看文件MD5码
- 每日一篇_启动又报错了The POM for com.xxxx:qgg-core:jar:0.0.1-SNAPSHOT is missing
- 使用EasyBCD修改设置引导启动项
- C语言,判断二维字符数组是否存在回文字符串 例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“};
- 深入浅出图神经网络【阅读笔记】
- 给我来一段Python求素数
- TCP窗口管理之发送窗口
- 信息传输计算机服务和软件行业,信息传输,软件和信息技术服务业 是 什么服务业...
热门文章
- android studio 2048游戏
- Spring整合Quartz
- Java集合源码解读(一):集合总体框架
- 刷屏的北京雾霾,2018 年北上广深空气质量分析
- python变量循环写入txt文件_Python中将变量按行写入txt文本中
- 100%解决VMware虚拟机NAT上网方式,保姆教学
- 小米MAX Root,第三方REC,XP框架刷入
- 数据库系统概论第五版(笔记+习题答案)(全)
- linux 多线程计算pi,单/多线程计算测试:SuperPI/国际象棋_IntelCPU_CPUCPU评测-中关村在线...
- t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测