光说不练假把式,

这里以商业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代码相关推荐

  1. 如何系统地自学python100天_Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅...

    北京千锋互联科技有限公司成都分公司骆昊(jackfrued)在Github上发布了一个Python学习秘笈,从萌新到王者的100天Python学习之旅. 简单的说,Python是一个"优雅& ...

  2. python修改app定位_appnium定位+操作方式(python)

    1.定位: A.利用 Android UIAutomator定位: 例: driver.find_element_by_android_uiautomator('new UiSelector().de ...

  3. python最简单单例模式_5种Python单例模式的实现方式

    本文为大家分享了Python创建单例模式的5种常用方法,供大家参考,具体内容如下 所谓单例,是指一个类的实例从始至终只能被创建一次. 方法1: 如果想使得某个类从始至终最多只有一个实例,使用__new ...

  4. python新手入门到放弃_python萌新:从零基础入门到放弃

    原标题:python萌新:从零基础入门到放弃 不管是在什么领域,自学者都占绝大多数,你说自学可以吗?可以,没问题的,只需要你具备以下几点最基础的能力: 第一点:天赋.对于python而言其实是非常需要 ...

  5. python语法报错原因_python萌新最常见5大错误

    Python 小萌新最常见 5 大错误的: 1. invalid syntax 报错原因:语法错误 首先这个时候需要检查语法是否有用错,如果报错行没有发现错误,通常在相 邻行会出现问题,这个时候就要检 ...

  6. Python 修改文件内容3种方法(替换文件内容)

    一.修改原文件方式 def alter(file,old_str,new_str):"""替换文件中的字符串:param file:文件名:param old_str:就 ...

  7. Python修改文件的两种方法

    目录: 一.以占用内存的方式修改文件 二.以占用硬盘的方式修改文件 引言 文件修改的方法从操作方式上大致可以分为两类,一种是以占用电脑内存的方式,将文件读取到内存中修改再存回硬盘:第二种方法是分别打开 ...

  8. python快乐编程—基础入门-从萌新到大神必读书籍 《Python快乐编程基础入门》...

    2019年,全球信息化进程持续加快,IT行业繁荣发展.作为新时代IT人,不仅需要强大的理论知识,更需要过硬的技术.Python作为最受欢迎的编程语言之一,作为人工智能时代的首选语言,因其受众多.用途广 ...

  9. termux运行python文件知乎_(萌新、小白看过来!)最详细、完整的基于安卓手机使用Termux搭建web服务器教程!...

    三.Termux搭建WEB服务器所需的软件及配置(分3步,Termux中下载) 1.php a.下载php pkg install php b.开启php自带的web服务器并指定建站系统文件夹(-t ...

  10. python直方图分箱_5种方法教你用Python玩转histogram直方图

    作者:xiaoyu 微信公众号:Python数据科学 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是matplotlib,seaborn 等 ...

最新文章

  1. jQuery.fly插件实现添加购物车抛物线效果
  2. NIOS2随笔——DMA(1)
  3. IDE to AHCI/RAID 蓝屏补丁
  4. EOS账户系统(7)权限评估
  5. HTML与XHTML的区别
  6. iOS Social框架
  7. 从一个数组中找出最接近目标_LeetCode每日一题 | 转变数组后最接近目标值的数组和...
  8. 解决浏览器无法登陆pki问题,删除浏览器缓存
  9. ASN.1编解码:asn1c的基本使用
  10. PyTorch实战福利从入门到精通之二——Tensor
  11. 使用drawBitmapMesh扭曲图像
  12. PHP网站安全日志系统开发与部署
  13. cmd查看文件MD5码
  14. 每日一篇_启动又报错了The POM for com.xxxx:qgg-core:jar:0.0.1-SNAPSHOT is missing
  15. 使用EasyBCD修改设置引导启动项
  16. C语言,判断二维字符数组是否存在回文字符串 例如:char a[] [10]={“asd“,“asa“,“werew“,“yuyu“};
  17. 深入浅出图神经网络【阅读笔记】
  18. 给我来一段Python求素数
  19. TCP窗口管理之发送窗口
  20. 信息传输计算机服务和软件行业,信息传输,软件和信息技术服务业 是 什么服务业...

热门文章

  1. android studio 2048游戏
  2. Spring整合Quartz
  3. Java集合源码解读(一):集合总体框架
  4. 刷屏的北京雾霾,2018 年北上广深空气质量分析
  5. python变量循环写入txt文件_Python中将变量按行写入txt文本中
  6. 100%解决VMware虚拟机NAT上网方式,保姆教学
  7. 小米MAX Root,第三方REC,XP框架刷入
  8. 数据库系统概论第五版(笔记+习题答案)(全)
  9. linux 多线程计算pi,单/多线程计算测试:SuperPI/国际象棋_IntelCPU_CPUCPU评测-中关村在线...
  10. t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测