抖音弹幕 WebSocket协议、Protobuf还原
0701657335e84f0c327f6bba26337f2ad6ca4ba8e3335a3698f9be1e4802627df9bf1ba2016982363085a7a4c7e66d36234dd0b01c29f69d016d230846f0fd4b40c30d5716eee2f541bd5d1e879c29027be824d015e44112c6e27924c2302991dd191658d151192c8c8d1cff6118c20a7df51a3c6acd0446304df202cfc77965d0361b83a24498faf7ab736cfd4e6e9d46743ea4634b84c17e7fdb542e3e9a5ce916be2c5c5e138168f04de241c95a936271238e40ab963a5135efac38bffbcab2066d23a6ead6884453f10a9a5a8c6d2ec8f41da38eb882b7d6627cb752a1c8f8beaae5d35e297ac24ff34a15b4cf560a7384be1065497ad ...
APP逆向-吾爱破解2023安卓中级题,来点小小的CTF震撼
先来看看APP界面
拖到jadx,see see java 源码
关键是要让代码跳转到这里,我这里主要是修改smali,然后重新签名打包,当然,你也可以用frida或者objection hook 传参
模仿下面的两行代码,在位置1插入
12:cond_63:goto_63
然后,修改上面的两个if判断,重新打包,跳转成功
过了这个,但还是啥都没有,只跳出一句话,再看源码,注意到两处可疑的地方
将apk改成压缩包,在里面找到 aes.png 和 lib52pj.so 两个文件
先以文本形式打开 aes.png,得到一大段意义不明的文本
有点像是base64编码,decode一下
还是不明所以,先放一边……💀💀💀
再来分析so,拖到 IDA Pro 分析
进入 Java_com_zj_wuaipojie2023_12_MainActivity_decrypt 函数内部
这里可以确定加密算法是AES,模式是ECB,填充是PKCS7,|wfkuqokj4548366 刚好16位长度,疑似密钥
到**CyberChef**试试就知道了,显示参数出错,果然没那么 ...
APP逆向-戒了吧去除开屏广告和强制更新
去除更新弹窗方法一 修改 AndroidManifest.xml 版本号(失败)
方法二 修改 dex 版本号(失败)
方法三 抓包分析接口(失败)死活找不到入口,唉~
方法四 Arsc资源搜索(失败)
方法五 Activity记录MT管理器开启Activity记录,定位到 com.dcloud.android.widget.dialog.DCloudAlertDialog
删除 show
删除两个 constructor
终于成功了,我淦!!!😭
去除开屏动画(失败,应用数据读取失败)
修改 AndroidManifest.xml 里面 LAUNCHER 的 android:name
MT管理器教程第四课之去除软件更新提示_哔哩哔哩_bilibili
Android逆向技巧——去除开屏广告_Android_脚本之家
教你学会简单的APK修改
Windows逆向初体验
如何正确的对Windows软件进行逆向工程(翻译/转载) | Lyon’s blog
Proxifier抓包PC应用,转发Fiddler参考:http://www.51testing.com/html/42/15142342-4462193.html
增加服务器: 配置文件 - 代理服务器
增加规则: 配置文件 - 代理规则
不自动解析域名
APP逆向-吾爱破解2023春节
Android 1使用开发者助手分析界面资源
定位按钮标签
在jadx-gui中,根据包名和类名定位代码,抠出来修改一下,放到Java在线编译网站上运行,得到flag
通关 🙌🙌🙌
Android 2像第一题一样,使用开发者助手定位Activity,这里就不赘述了,直接上jadx-gui静态分析
主要的判断逻辑在这里,其实就是将uid和flag传给c0837a.m25B,然后返回结果
12345if (c0837a.m25B(obj, StringsKt.trim((CharSequence) editText2.getText().toString()).toString())) { Toast.makeText(this$0, "恭喜你,flag正确!", 1).show();} else { Toast.makeText(this$0, "flag错误哦,再想想!", 1).show();}
进入 c0837a.m25B 函数:
函数的返回结果是比较两个值
这里由于涉 ...
APP逆向-flutter逆向笔记
逛了一圈发现flutter的逆向难度太大(其实还是因为我太菜了🤡),连抓个包都费劲 🐶 就像肉师傅说的
关于判断应用是否flutter开发?
这里就收集一下目前已知的情报吧,就当做积累
对flutter开发的某app逆向分析
[原创]flutter逆向助手-基于reflutter的简易化dart解析工具
[原创]Flutter概述和逆向技术发展时间线,带你快速了解
Doldrums:一款功能强大的逆向工程分析工具-51CTO.COM
APP逆向-猿人学APP大赛-第五题-双向认证
先理解一下什么是 双向认证 https://cloud.tencent.com/developer/article/1699532
所以用fiddler抓包是肯定不行的,用r0capture试试吧
请求,图中已经圈出了 Host、Path 和 FormData
返回
下一步就是要dump出客户端中的证书,也是用r0capture
根据提示,先打开存储权限
然后启动Spawm模式,运行命令:
1python r0capture.py -U -f com.yuanrenxue.match2022 -v
报错: process not found
怀疑是 Frida 15.1.28 的不支持 Spawm模式,换个稳定版本:12.8.0
折腾了好一会儿,才在虚拟环境装好了,这里记录一下
由于无法用pip直接安装,所以需要去pypi下载对应的安装包
然后cd到对应目录下,执行命令:python setup.py install
还需要安装旧版本的 firda-tools,pip install frida-tools==5.0.0
这样就装好了,把对应版本的frida-se ...
APP逆向-猿人学-APP大赛-第四题-grpc、r0capture初体验
第一步肯定还是抓包,这里不能用fiddler,因为不是http协议,刚好试一下r0captcha,使用教程可以参考:
frida+r0capture安卓应用层抓包通杀 – N_schema
先启动firda-server,配置接口转发,然后 frida-ps -R 确认连接
没问题后,切换到r0capture目录,运行命令
1python r0capture.py -U -f com.yuanrenxue.match2022 -v -p yuanrenxue_20230105.pcap
就会自动启动目标app了,观察日志:
发送包
数据包
也可以把保存的 yuanrenxue_20230105.pcap 文件拖进 wireshark 分析
发送包
数据包
这里可以先确认发送包的几点信息
host为:180.76.60.244:9901
路径为:/challenge.Challenge/SayHello
提交数据:a2f25d9111c3f20c
hook一下ChallengeFourFragment的sign函数,然后对比抓包结果:
12345678910 ...
Python编程-执行Java代码的两种方式
Java环境配置和执行js代码需要先在本地配好node一样,执行java代码,需要先在本地安装Java
安装步骤可以参考:https://blog.csdn.net/m0_61961937/article/details/122906540
安装好后需要配置系统环境,直接把 \JDK xx.x.x\bin 配进 path 就行
配好后,运行 java 或 javac 命令,显示如下就表示成功:
Jpype简介这里我们使用 jpype 进行调用,pypi的介绍如下:
JPype is a Python module to provide full access to Java from within Python. It allows Python to make use of Java only libraries, exploring and visualization of Java structures, development and testing of Java libraries, scientific computing, and much more. By gai ...
APP逆向-so文件IDA调试入门
IDA Pro 7.0 下载https://www.newasp.com/soft/346032.html
静态/动态注册
当执行一个 Java 的 native 方法时,虚拟机是怎么知道该调用 so 中的哪个方法呢?这就需要用到注册的概念了,通过注册,将指定的 native 方法和 so 中对应的方法绑定起来(函数映射表),这样就能够找到相应的方法了。注册分为 静态注册 和 动态注册 两种。默认的实现方式即静态注册。
Android逆向技术–JNI的概念
Frida hook RegisterNatives用于得到动态注册的函数地址
https://github.com/lasting-yang/frida_hook_libart
用法:
1frida -U --no-pause -f package_name -l hook_RegisterNatives.js
猿人学 第十一题https://blog.csdn.net/zjq592767809/article/details/115201731
快捷键
tab 或 f5 转伪代码
资料:
Unidbg入门实战教程
A ...