- 博客(72)
- 收藏
- 关注
原创 snippet利用Hook脚本定位
现在,每当尝试获取或设置document.cookie的值时,都会分别调用定义的getter和setter函数。这段代码演示了如何使用JavaScript的Object.defineProperty方法来拦截和自定义对document.cookie属性的访问和修改行为。这段代码的目的是在发送包含特定字符串(在这个例子中是"key")的HTTP请求的URL时,自动触发一个断点。这段代码的目的是在设置包含特定键的HTTP请求头时,自动触发一个断点。这可以用于调试或监视特定的网络请求头设置。
2024-11-23 16:58:15 285
原创 预备阶段-Mitmproxy的使用
是一个代理工具(类似于Charles),可以实现抓包的功能。除此以外,他还可以集成Python脚本,在请求和响应中用代码进行自定义操作。
2024-10-11 20:34:45 58
原创 预备知识:常见的编码 (ASCII, Unicode, UTF-8, GBK, base64, urlencode)
浏览器原生提供了base64的编码、解码方法:btoa atob。
2024-09-29 08:10:07 1685
原创 预备阶段-Android逆向基础
Android程序一般是使用Java语言开发的,通过打包生成一个APK文件安装到Android手机上来运行。通过一些反汇编工具可以得知APK文件内部的逻辑,甚至得到它最初的Java源代码(不完全等同于开发时的源代码,但是大体上相同)。也可以通过反汇编工具得到类似的Smali代码,Smali代码是一种类似于汇编语言的代码,适合机器执行,但对于程序员来说就很晦涩难懂。随着业务安全性的提高,现在大多数加密都放置在so文件中生成,想要了解so文件就需要掌握Arm汇编语法,了解寄存器和指令集。
2024-09-27 08:25:21 97
原创 阶段二 - 小程序反编译及调试
解包工具:链接: https://pan.baidu.com/s/1KLDbivGPCPhqt1nbLVbhXA?pwd=kckq 提取码: kckq。在这里输入cmd后,输入:node wuWxapkg.js 上述步骤生成的文件路径。得到源码后,再使用微信小程序开发者工具打开,去里面寻找加解密的位置。执行后,会生成一个文件夹,里面就是小程序的源码了。
2024-09-01 14:34:45 417
原创 阶段一 - 小程序抓包
想要抓包小程序,可以使用charles,如果是在电脑上打开了微信小程序,勾选charles的Proxy -> Windows Proxy,然后就可以抓包了;如果遇到有些小程序无法在电脑上打开,只能在手机端打开的情况,可以使用手机/模拟器 + charles 进行抓包。
2024-09-01 11:55:28 231
原创 补浏览器环境
*浏览器环境:**是指JS代码在浏览器中的运行时环境,包括V8自动构建的对象(即ECMAScript的内容,如Date、Array),浏览器内置传递给V8的操作DOM和BOM的对象(如document、navigator)。**Node环境:**是基于V8引擎的Js运行时环境,它包括V8与其自己的内置API,如fs, http, path。因此,补浏览器环境其实是补浏览器有而node没有的环境,即补BOM和DOM对象。
2024-07-02 21:29:28 1503
原创 常见反爬及应对
AAEncode是一种JavaScript代码混淆算法,利用它,可以将代码转换成表示的JavaScript代码。去掉代码最后的 (‘‘),这是函数的自调用,去除后就是函数的声明。也可以在去掉 (’’)后,加上 .toString(),进一步将方法转化成字符串。JJEncode 的还原方法与 AAEncode 一致。
2024-07-02 21:23:59 870
原创 预备知识:压缩和混淆
*代码压缩:**在对用户体验造成影响的因素中,最重要的是“网页打开速度”,即资源加载速度和页面渲染速度。**代码加密:**将JavaScript代码转成人无法阅读或解析的代码,如借用WebAssembly技术,可以直接将JavaScript代码用C/C++实现,JavaScript调用其编译后形成的文件来执行相应的功能。代码编码之AAEncode与JJEncode:AAEncode能将JavaScript代码转换为颜文字,而JJEncode则将代码转换为“$”、“_”、“+”组成的字符。
2024-07-02 08:00:19 537
原创 预备知识:常见的加密 (MD5, SHA1, HMAC, DES, AES, RSA)
浏览器原生提供了base64的编码、解码方法:btoa atob。
2024-07-02 07:59:12 1222
原创 预备知识:JS基础与Chrome介绍
右键检查右上角->更多工具->开发者工具Elements元素,是经过了浏览器和JS渲染后的代码,与页面源代码不一样用于查看或修改HTML元素的属性,CSS属性,监听事件,断点等。CSS可以即时修改,即时显示,大大方便了开发者调试页面,可以右击鼠标,对Elements中的属性进行操作查看元素的CSS属性:在元素的右边栏中的styles页面可以查看该元素的CSS属性,这个页面展示该元素原始定义的CSS属性以及从父级继承的CSS属性。
2024-07-02 07:54:33 888
原创 预备知识:HTTPS数字证书验证论述
数字证书的验证有两个重要的步骤,第一是客户端验证服务器发的数字证书有没有被篡改,以及没有被篡改的证书是否为服务器发的证书,而不是任何第三方假冒服务器发的证书;第二是客户端将对称加密算法的秘钥安全地发送给服务器。这两步都完成以后,整个HTTPS的数字证书的验证就算是成功了。
2024-07-02 07:51:15 955
原创 Pycharm常用快捷键整理
ctrll + Alt +⬅ ,表示查看上一步调用函数位置, ctrl + Alt + ➡,表示查看下一步函数位置。如果想在下面代码a+=1的上方插入空行的话,可以点击到a+=1这行,然后按下【Ctrl + Alt + Enter】,则会在其上方新插入一行。写代码的时候会发现有很多黄色的波浪号,这个时候可以点击任意黄色波浪号的代码,然后按下【Ctrl + Alt + L】进行代码格式化。想折叠下面的代码的话,可以选中代码再按下【Ctrl + -】/ 展开代码【Ctrl + +】
2024-07-01 07:59:07 579
原创 Tips汇总
在采集时遇到一个加密参数 Token,搜索 Token 的值,如果是从前面包中返回的,那相对比较好解决,因此进行搜索,却没有搜索到,那我就认为它是加密的算法。这里其实有一个坑:Token 确实是从前面的请求返回的,但因为浏览器没有加载出来,所以搜索不到,在其中一个 url 中有 getToken 关键字,多么明显的提示。
2024-06-29 09:56:14 535
原创 Android开发环境搭建
安卓开发目标:了解正向开发常见流程(逆向)想要开发安卓程序:接下来要做的是:win系统在安装和操作之前,请提前开启电脑的vt-x,虚拟机开启方法如下:其他win系统请参考:1.安装android studiohttps://developer.android.google.cn/studio/archive.html,版本都可以按下图点击即可,安装路径自己设置:选择不导入电脑中的配置:因为还没有SDK,所以报错,直接取消即可。选择标准模式,对新手来说配置更简单:选择SDK的安装路径:我的SDK位置:SD
2024-06-29 09:49:49 884
原创 Unidbg调用-补环境V3-Hook
结合IDA和unidbg,可以在so的执行过程进行Hook,这样可以让我们了解并分析具体的执行步骤。:基于unidbg调试执行步骤 或 还原算法(以Hookzz为例)。
2024-06-29 09:06:17 239
原创 阶段二 - AOSP刷机及Fart8脱壳机使用
刷机时,如果执行 flash-all.bat 无反应,那执行 fastboot devices 试试,若无设备出现,需要去安装google usb 驱动,具体参考六期-day06-03。我的电脑硬件不支持对AOSP源码进行编译,所以只能用别人编译好的刷机包进行刷机。使用的刷机包是luffy 8期 day37 下的v5目录下的taimen包,这个刷机包里面。刷机过程中,总是提示超过了最大存储空间,需要在flash-all.bat 文件的以下位置添加:-S 256M。
2024-06-18 07:25:06 425
原创 预备阶段 - Airtest 使用指南
AirtestIDE 安装与启动: https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/Airtest 可以基于图像识别来自动化控制 APP。这些方法更详细的用法及示例见 崔庆才 book。
2024-06-13 22:07:25 192
原创 unidbg讲解V1
DvmClass,在unidbg执行中用于表示类。DvmObject,在unidbg执行中用于表示对象(基于类创建对象)。DvmObject<?> obj1 = Crypt.newObject("真正的对象");DvmObject<?> obj2 = vm.resolveClass("com/yoloho/libcore/util/Crypt").newObject("真正的对象");方法的签名,用于表示某个方法。emulator,",参见JNI开发时的类型对照表。
2024-06-13 22:00:33 1559
原创 chls.pro/ssl证书安装失败解决
我的手机是一台root,但未获取sustem分区的手机,在安装charles的 ssl证书时,发现在手机浏览器输入chls.pro/ssl,但证书一直无法下载。
2024-06-07 13:03:28 7842
原创 一,抓包技巧 - 抓包总结
可以思考是否是使用其他框架如flutter进行的开发或使用了自定义的协议进行的网络通信,此时需要先借助更加底层的抓包工具如wireshark进行协议分析,明确具体使用了那种协议后,才好确定后续的绕过方案。也许以上方式都尝试了,结果依然无法抓包。抓包前,可能会遇到 app 检测。
2024-06-02 08:26:07 410
原创 Pycharm提示Python解释器无效的处理
在网上找了一圈,还是不能解决我的问题,不得已,新建了带虚拟环境的项目,然后把原来的项目文件都扔了进来,结果就行了。
2024-05-31 17:52:18 1139
原创 常用的 adb 命令
在安卓开发环境搭建时,下载SDK后,在SDK的安装目录,就会有adb.exe。查看连接到adb的设备:手机需要用USB线连接电脑。参看CPU架构(只有一个设备时,可以不写设备名)
2024-05-26 15:49:56 252
原创 Android抓包 - Hook 底层通信
平时开发使用的 http 或 https 均属于应用层的协议,其本质都会调用 TCP 发送请求。例如:你在 Python 中使用 requests 模块发送一个 http 请求,其底层就是使用 socket 模块 + TCP 实现发送的请求。相比 http ,在第二步多了一个请求的收发以同步随机字符串。
2024-05-25 11:36:07 298
原创 阶段一 - 基于Flutter开发与自定义协议
所以就有了降级方案,可以通过屏蔽 IP 实现。找到 IP 后,通过防火墙屏蔽,就可以正常使用 charles 、fiddler 抓包了。比如美团系(美团、点评、滴滴)使用了一种叫做移动长连接的技术,在打开 App 的时候,移动端和服务器建立起 tcp 连接,后续的请求和接收都走该通道,导致抓不到 http/https 的数据包。不过这种技术在 TCP 通道无法建立或者发生故障时,会选择使用 UDP 面向无连接的特性提供另一条请求通道,或者绕过代理长连服务器直接向业务服务器发起 HTTP 公网请求。
2024-05-19 06:40:14 448
原创 阶段一 - 正向实现客户端证书认证
如果第三方模块被混淆,那hook方式均不能生效。这时就需要根据系统包去定位校验的函数,因此需要对安卓开发者是如何实现客户端证书校验的有一定了解,接下来就介绍这部分内容。开发者实现客户端证书校验的本质是:证书/密钥 + 代码。在形式上有:公钥校验、证书校验和Host(主机)校验。
2024-05-18 16:20:03 601
原创 LSPosed 安装配置
正常安装完LSPosed会直接激活,如果LSPosed显示未激活,请点击 图1 中Magisk安装,根据步骤点击安装,之后LSPosed就可以激活了。刷入成功后,就可以看到 LSPosed 的图标,如果没有出现的话,就去手机的。注意:在面具中可以根据是否开启 Zygisk,来切换和生效。提示:后续的操作均使用的Magisk面具 24.0 版本。安装成功后,在LSPosed的模块列表中可以看到。目录下找apk包,然后再点击安装即可。安装到手机(跟安装其他app一样)。Zygisk-LSPosed(推荐)
2024-05-18 15:59:29 3554
原创 Frida-RPC 调用
解释:在最外层使用rpc.exports导出了encrypt方法的定义,所以在script.exports里就能调用encrypt方法。
2024-05-15 06:35:09 896
原创 阶段一 - 客户端证书认证进阶(代码混淆)
定位混淆后的代码位置Hook绕过如果定位混淆后的代码呢?hook系统方法,根据调用栈寻找到 doHandshake 被混淆的位置。console.log("参数:", a, b);});对比分析,先找到 connectTls 位置,由此展开后续分析。如果绕过?绕过pinner证书,最简单直接在connectTls中就能找到他的类和方法被混淆后的名称,可以直接Hook。例如:上面的第52行绕过证书校验方式1:关键字搜索定位代码(费劲)方式2:Hook底层校验的方法,直接绕过。
2024-05-13 22:37:08 1215
原创 阶段一 - Frida 检测绕过
进入app安装目录,把 libmsaoaidsec.so 删除即可。app安装目录位置,/data/app/,进入后再进入/lib/arm64/,运行 rm libmsaoaidsec.so 即可。然后在MT管理器中将怀疑的 so 文件移动到别的地方后进行测试,看是否还会出现闪退现象。hook发现,app会出现闪退现象,原因是这个app做了frida反调试。这个就类似frida-server防hook的升级版,启动后即可使用。有些app运行时会监测frida的相关特征,监测到之后就会直接闪退。
2024-05-12 17:10:25 2129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人