frida
文章平均质量分 92
解放双手的神器
夜猫逐梦
2022,希望在CSDN上总结并分享一个14年老二次猿的职业生涯。
大二开始有了自己的电脑。
大三参加ACM。
大四组建ACM社团,第一批报名就超过百人。
大四上学期末(10年底)开始北漂,毕业后入职北京瑞星,后又就职于搜狐畅游,从事反外挂相关业务。
15年开始了半年的沿海旅游,之后又是半年的“自由职业”。
之后从事游戏相关行业逆向开发至今。
逆向,网络安全,全栈,啥都会点,算个技术控吧。
记录并分享知识和经验,结交有志之士,共同进步。
展开
-
【Frida】【Android】 10_爬虫之WebSocket协议分析
这个项目是一个开源的基于WebSocket的即时通信系统,提供了相应的客户端与服务器,整个项目的源代码存储在GitHub上,网址是。》,我们可以尝试hook函数okhttp3.OkHttpClient.newCall。根据之前的文章《【Frida】【Android】 09_爬虫之Socket。有兴趣的,可以根据下面堆栈信息,编写frida脚本获取更详细的信息。将封包发送出去,我们通过objection拦截该函数,查看堆栈内容。,可以正常访问,所以猜测是防火墙的问题。也可以使用本节内容的绑定资源。原创 2024-04-07 20:41:04 · 1576 阅读 · 0 评论 -
【Frida】【Android】 工具篇:ProxyPin抓包详解
Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个Tab。ProxyPin是一种基于MITM(中间人攻击)的抓包工具,主要用于移动应用程序的安全测试和调试。抓包的都知道小黄鸟,但是小黄鸟的解锁版版本很多,由于其不开源,网上很多版本是魔改的,有兼容性问题。,只信任系统证书,安装为用户证书,对APP的HTTPS抓包会失败。,而且设置后就不能取消,除非先删掉所有的用户证书。此时,我们以浏览器,百度页面为例,可以看到已经可以抓到封包了。原创 2024-04-06 19:50:10 · 3517 阅读 · 8 评论 -
【Frida】【Android】 工具篇:查壳工具大赏
综上所述,Android混淆加壳技术在保护应用程序安全方面经历了从基础混淆到加壳、虚拟化以及自定义加密算法等多个阶段的演变,以应对不断增长的逆向工程挑战和安全威胁。Android混淆加壳技术的演变过程可以追溯到Android应用程序开发的早期阶段。ApkCheckPack是通过go编写的程序,官网支持release版本。加固平台还有很多,以后也会一直增加新的平台和方案,目前比较完整的可以参考。将能收集到的加固特征汇总整理,支持40个厂商的加固检测。soregex 对有版本号的特征so库,使用正则匹配。原创 2024-04-06 13:21:51 · 2709 阅读 · 0 评论 -
【Frida】【Android】09_爬虫之Socket
HTTP数据从应用层发送出去后,依次经过传输层、网络层、链路层,在经过每一层时都会被包裹上头部数据,以保证在数据传输过程中的完整性,然后传输给接收方;至此,Socket的Hook代码已经写完,反过来,我们通过hook相关函数,可以定位到APP的核心代码,下面我们以HTTPS为例,定位APP调用函数。因此,如果对应用进行抓包,那么不仅仅是应用层,在传输层、网络层等应用层往下的所有层级都可以获取传输的全部数据。协议,则直接使用Socket,此时数据如果没有任何代码层面的加解密,直接就是。原创 2024-04-02 21:16:11 · 1163 阅读 · 0 评论 -
【Frida】【Android】08_爬虫之网络通信库okhttp3
每个网络请求和接收不管是GET还是PUT/POST等数据传输方式都必须经过okhttp3本身存在的五大拦截器,因此Interceptor是一个绝佳的Hook点,可以同时打印输出请求和响应。这是因为,App只有一个全局对象client,一般在App启动的较早时机被创建,如果采用attach模式Hook okhttpClient,大概率会一无所获,因此只能用。前文已经说过,拦截器方式,可以更方便的实现请求内容的打印,我们如果将拦截器注入到目标APP中,将更通用而方便。,将打印请求和响应相关的内容。原创 2024-04-01 23:37:50 · 1524 阅读 · 2 评论 -
【Frida】【Android】 07_爬虫之网络通信库HttpURLConnection
根据我们在上一步整理的关键收发包函数会发现剩下的都是HttpURLConnection类中的函数,因此只要使用如下命令去watch整个HttpURLConnection类的所有函数即可,当然不能忘了构造函数。命令,无法找到任何HttpURLConnection的对象。也就是说,hook的对象是不对的。这和我们的预期(会hook很多函数,如setRequestMethod等)是不符的。就是我们demo中所调用的函数,其中会有参数。我们可以看出,APP会触发三个构造函数,而。原创 2024-04-01 11:45:09 · 1623 阅读 · 1 评论 -
【Frida】【Android】工具篇:ZenTracer
今天再推荐个好友自己写的批量hook查看调用轨迹的工具ZenTracer,可以更大范围地hook,帮助读者辅助分析。通过《【Frida】【Android】01_手把手教你环境搭建》系列文章,我们已经了解了objection的强大,优点是hook准确、粒度细。这里小编使用的frida16,接口变更导致部分代码失效,修复了该代码,并上传了gitcode上。中的app为例,点击《测试》按钮,发现显示了两个拦截内容,可见hook成功了。,ZenTracer开始Hook满足条件的类,如下图,hook了包含。原创 2024-03-31 03:03:22 · 901 阅读 · 0 评论 -
【Frida】【Android】06_夜神模拟器中间人抓包
在这样的攻击中,攻击者能够读取、监听、修改或者伪造经过他手中的所有通信数据,而正常的通信双方却对此毫不知情,以为他们仍在进行直接、安全的通信。进入“设置”应用,依次单击“安全性和位置信息”→“加密与凭据”→“信任的凭据”→“用户”,即可在用户凭据中查看到刚才安装的证书文件,如图所示。远在HTTP的年代,中间人攻击就已经存在了,而且成本极低,针对该情况,HTTPS应用而生(当然,还有很多其它原因)。,稍等片刻,即可下载证书,在通知栏中点击下载的证书,将打开为证书命名的窗口。原创 2024-03-30 12:14:37 · 980 阅读 · 0 评论 -
【Frida】【Android】05_Objection实战
下面以样例程序Junior.apk为例(样本来自于《Android Studio开发实战:从零基础到App上线(第2版)》一书中的Junior样例,源代码在https://github.com/aqi00/android2上)。这是因为,Android Studio 3.0之后,在打包生成debug apk时,在apk的manifest文件的application标签里自动添加 android:testOnly="true"属性。是静态(static)方法,无法使用objection调用。原创 2024-03-28 17:41:23 · 1537 阅读 · 0 评论 -
【Frida】【Android】04_Objection安装和使用
Objection介绍如果说在Frida提供的各种API基础之上可以实现无数的具体功能,那么Objection就可以认为是一个将各种常用功能整合进工具中供我们直接在命令行中使用的利器,Objection甚至可以。Objection可以将Frida运行时所需要的frida-gadget.so重打包进App中,从而完成Frida的无root调试。,可以和包含frida-gadget.so这个so文件的App进行交互,运行Frida的Hook脚本,并分析Hook的结果。,已经2021年4月的版本了。原创 2024-03-28 14:23:52 · 2216 阅读 · 0 评论 -
【Frida】【Android】03_RPC
在Frida中,可以使用Python完成JavaScript脚本对进程的注入以及相应的Hook。参考《【Frida】【Android】02_JAVA层HOOK。在之前的章节中一直使用,在这一节中,将介绍一些关于。文章中内容仅用于技术交流,请勿用于违规违法行为。从图中可以看到,满足我们的预期,测试通过!1️⃣ Android App解释。1️⃣ Android App解释。3️⃣ python控制端。3️⃣ python控制端。2️⃣ 注入的js代码。2️⃣ 注入的js代码。原创 2024-03-26 21:14:05 · 1141 阅读 · 0 评论 -
【Frida】【Android】02_JAVA层HOOK
类函数使用关键字static修饰,和对应类是绑定的,如果类函数还被public关键词修饰着,在外部就可以直接通过类去调用;用Frida的API函数Java.perform()将脚本中的内容注入到Java运行库,这个API的参数是一个函数,函数内容是监控和修改Java函数逻辑的主体内容。如果是实例方法的主动调用,则需要在找到对应的实例后对方法进行调用。,这是java语法特性,可以通过查看Smali代码看出该参数的传递,所以。中添加了两个相同名称的函数(重载函数),接受不同的参数,用于演示。原创 2024-03-26 20:36:56 · 1413 阅读 · 0 评论 -
【Frida】【Android】01_手把手教你环境搭建
采用这个模式时,即使目标App已经启动,在使用Frida注入程序时还是会重新启动App。之前听说objection跟frida有版本冲突,但是直接安装objection,就可以顺便安装frida相关工具,避免冲突问题,所以我们直接执行。模式,建立在目标App已经启动的情况下,Frida通过ptrace注入程序从而执行Hook的操作。旧的frida版本,不添加任何参数,则默认会通过attach模式注入App。通常,我们会编写脚本,然后直接加载脚本,方便测试。由于上小节中,我们使用的frida版本是。原创 2024-03-24 21:38:49 · 1502 阅读 · 1 评论 -
【Frida】10_用鼠标自动标记棋盘上的雷区(一键过关)
该函数是一个Windows API函数,用于模拟鼠标的各种操作,例如移动鼠标、点击鼠标按键等。但需要注意的是,由于其在新版本的Windows中已经被标记为过时,推荐使用更现代的方法,如。到此为止,我们通过TypeScript方式进行开发,通过扫雷程序,实战了Frida的基本使用。当然,Frida的路途还很遥远,期待下次再见。有了上面的介绍,我们可以假设一个虚拟的。点,如下图所示,该点相对于窗口的坐标为。,运行编译后的脚步,最终1秒过关。,以监视模式编译脚本。2️⃣ 代码编写测试。2️⃣ 代码编写测试。原创 2024-03-21 11:24:54 · 882 阅读 · 0 评论 -
【Frida】 09_获取软件窗口位置,设置鼠标指针位置
执行上面的代码,鼠标将跳到扫雷窗口的左上角,然后等待2秒钟,最后又回到原来的位置。文章中内容仅用于技术交流,请勿用于违规违法行为。设置鼠标指针位置到扫雷窗口上。设置鼠标指针位置到扫雷窗口上。恢复鼠标指针位置到初始位置。设置鼠标位置到扫雷窗口上。恢复鼠标指针位置到初始位置。原创 2024-03-20 15:22:14 · 824 阅读 · 0 评论 -
【Frida】 08_将目标窗口切换到前台
通过AttachThreadInput函数将目标窗口所在线程的输入处理过程与当前线程的输入处理过程连接起来,从而实现将窗口切换到前台。:使用SetWindowPos函数可以设置窗口的位置和大小,并将其放置在Z顺序的指定位置,从而将窗口切换到前台。在Windows编程中,GUI界面编程经过二三十年的发展,产生了大量API,庞杂无比,应用场景各异,这里简单记录下。:通过ShowWindow函数可以显示指定窗口,并将其设为活动窗口,从而将窗口切换到前台。针对user32中的函数,目前使用旧的方式,代码参考《原创 2024-03-20 14:27:22 · 976 阅读 · 0 评论 -
【Frida】07_让系统重新绘制指定窗口
将从 x 值对应的类型集合中排除 null 和 undefined 的类型。为了方便使用,也为了模块化编程,我们将windows API封装到一个类中,并将该类独立到一个文件中。TS 中的感叹号,称作『非空断言』操作符,Non-null assertion operator。除了FindWindow,我们还可以找到程序内存放该句柄的地址,然后从中取出来。最顶层符合条件的窗口,通过SpyXX.exe,我们可以传参。获取我们想要的结果,但是当有多个窗口时,只能获得第一个。,这时候就直接重绘了窗口了,验证成功。原创 2024-03-19 20:21:49 · 946 阅读 · 0 评论 -
【Frida】06_分析扫雷游戏的数据,显示地雷位置
每次点击笑脸都会重置游戏,这个时候,右边的计时器LED为0,我们称之为。,查看页面并不会显示出标记,这是因为页面未强制刷新的原因。我们需要最小化窗口后,再次打开才能看到雷的标记。这个时候,我们可以看到,扫雷数据中,包含大量。经过上面的分析,我们可以知道各种状态下每个。有了上面的分享,逻辑就很简单了,遍历所有。的时候,我们判断是8F,则改为8E即可。我们以下图为例,第一排第一列(以后称为。最后,把所有的点,点开即可完成关卡。的值的不同,显示不同的内容。,就可以轻松的完成关卡了。的个数刚好是地雷的个数。原创 2024-03-19 20:23:51 · 1157 阅读 · 0 评论 -
【Frida】05_读取扫雷游戏的数据
本小节讲解了Frida的Process方法实战操作,并介绍了NativePointer及相关方法,大家可以参考官网文档了解更多方法使用。同时,该值可以自定义设置,我们通过不断的修改该值,并通过CE搜索删选,很快定位到该数值(有三个)。从编程角度,设置中的值应该在同一个结构体中,在内存中体现出来,就是说他们内存一般不会离的太远。首先,扫雷游戏中雷的数量是一开始就设置好的,该数据为左边的LED显示,如下图所示,为10个。修改删选出来的三个值,修改他们,查看设置中的值,可以确定真正的雷的数量地址是。原创 2024-03-17 23:52:26 · 690 阅读 · 0 评论 -
【Frida】04_Frida中使用TypeScript脚本(采坑)
小编使用官网文档提示的github代码,直接运行,生成下图所示的文件内容(各种乱码)。winmine.exe (windows xp系统附带的扫雷游戏),将监视原有文件变化,并立刻自动编译新的index.js文件。TypeScript目前是主流,方面模块管理frida代码。文章中内容仅用于技术交流,请勿用于违规违法行为。问题,切换了三四个版本的node,依然各种报错。初始化 TypeScript 项目。初始化 TypeScript 项目。初始化一个 NodeJS 项目。初始化一个 NodeJS 项目。原创 2024-03-17 23:51:07 · 1211 阅读 · 0 评论 -
【frida】03 初识frida-node
Frida 是一种强大的动态分析工具,它可以帮助安全研究人员、逆向工程师和开发者进行应用程序的动态分析和修改。而 Frida-Node 是 Frida 的 Node.js 绑定,它使得在 Node.js 环境中使用 Frida 变得更加方便。frida每次安装都需要配置python环境,想想都麻烦,今天来一个纯js的环境:frida-node。为小编自己写的测试程序,该程序点击按钮的时候,弹出对话框。执行脚本,hook成功后,显示下面内容,且不报错。2️⃣ 创建一个 Frida-Node 脚本。原创 2024-03-13 21:22:06 · 693 阅读 · 0 评论 -
【Frida】02_常见API示例及功能函数封装(snippets)
通过Frida Interceptor,你可以监视并修改应用程序中特定函数的行为,比如修改函数的参数、返回值等。Module在Windows就是PE文件(EXE、DLL等),frida可以对PE进行解析,获取各种有用的信息:模块基址、名称、导入、导出、符号、内存区等信息。进程相关操作,部分函数(如getCurrentDir)注意版本:frida 15.0.18 还不支持;本小节讲述几个简单的属性:可以查看Frida版本、堆大小、运行时类型(QJS or V8)等信息。,需要注意的是单位为秒,而不是毫秒。原创 2024-03-21 23:29:41 · 1462 阅读 · 0 评论 -
[frida] 01_食用指南(持续更新)
*ps:**文章中内容仅用于技术交流,请勿用于违规违法行为。对系统中存在的指定进程名的进程执行js。对系统中存在的指定进程名的进程执行js。frida PC食用指南。指定进程ID的执行js。指定进程名的执行js。原创 2022-09-14 12:09:20 · 605 阅读 · 0 评论 -
【frida】 00_简单介绍和使用
文章目录导读安装实战一、枚举进程模块二、frida-trace直接hook函数recv*三、hook Qt应用程序打印日志总结参考资料导读frida是Greasemonkey公司(该公司的网红产品网络神器油猴子,可以通过“油猴脚本”,自由定制网页,实现你想要的各种功能)开发的一款跨平台逆向全家桶动态代码检测工具。它允许您将JavaScript或您自己的库的片段注入Windows,macOS,GNU / Linux,iOS,Android和QNX上的原生应用程序。 Frida还为您提供了一些基于Fri原创 2022-03-02 11:30:01 · 3176 阅读 · 0 评论 -
【Frida-实战】EA游戏平台的文件监控(PsExec.exe提权)
PsExec.exe 利用这个组件启动一个新的服务,该服务的权限可以被设置为 LocalSystem,这是 Windows 系统中最高的权限级别之一。一旦服务被启动,PsExec.exe 就可以在该服务的上下文中启动进程,从而获得了更高的权限。EA平台使用了很多技术,如protobuf、rpc、各种加密等,有需要分析的,可以一起探讨。,这次看清楚了,支持Android、ios、mac,唯独不支持windows!,代码下好,编译好了,结果发现,只是个文件操作的库。原创 2023-05-06 21:22:47 · 919 阅读 · 0 评论 -
【frida实战】“一行”代码教你获取WeGame平台中所有的lua脚本
frida实战 WeGame原创 2022-07-04 13:36:19 · 3360 阅读 · 0 评论