草庐IT

lifecycle-hooks

全部标签

Frida Hook可变参数

FridaHook可变参数0x00前言:可变参数Hook原理可以参考下我的这篇文章:C++逆向可变参数Hook我在网上搜了好久,都没找到有人写过FridaHook可变参数.........0x01FridaHook可变参数argsOK回归正题,Frida如何Hook可变参数。首先可变参数意味着,他的参数个数不确定,参数类型不确定。在frida中,函数的参数都在args上。我看了官网资料,他说args是一个NativeObject的Array。可是当我用JS去遍历这个Array的时候,总是会报错。。。。(如果有大神知道,请告诉我如何去遍历。谢谢!)而且我就这样直接输出args,他也会报一个arr

C++逆向 可变参数Hook

目录C++逆向可变参数Hook0x00前言:0x01C++可变参数:可变参数简介可变参数代码实战0x02逆向分析C++可变参数原理0x03printfHook实战Pwn菜鸡学习小分队C++逆向可变参数Hook0x00前言:我们在做逆向分析的时候,经常会需要去Hook一个程序的日志输出函数。而这种日志输出函数一般参数都不确定,这就会引起一个问题。我们如何知道参数个数?如何知道他有哪些参数呢?0x01C++可变参数:可变参数简介在C++中,可变参数的函数定义可以写成如下格式。用...来声明可变参数。voidtest(inta,intb,...){//Code...}在调用可变参数的函数时,可以在后

C++逆向 可变参数Hook

目录C++逆向可变参数Hook0x00前言:0x01C++可变参数:可变参数简介可变参数代码实战0x02逆向分析C++可变参数原理0x03printfHook实战Pwn菜鸡学习小分队C++逆向可变参数Hook0x00前言:我们在做逆向分析的时候,经常会需要去Hook一个程序的日志输出函数。而这种日志输出函数一般参数都不确定,这就会引起一个问题。我们如何知道参数个数?如何知道他有哪些参数呢?0x01C++可变参数:可变参数简介在C++中,可变参数的函数定义可以写成如下格式。用...来声明可变参数。voidtest(inta,intb,...){//Code...}在调用可变参数的函数时,可以在后

Android:hook很“危险”,使用需谨慎。

前言上篇文章《Android安卓进阶技术分享之AGP工作原理》和大家分析了AGP(AndroidGradlePlugin)做了哪些事,了解到AGP就是为打包这个过程服务的。那么,本篇文章就和大家聊一聊其中的Transform,解决一下为什么在AGP3.x.x的版本可以通过反射获取的transformClassesWithDexBuilderForXXXTask在4.0.0的版本就不灵了?源码走起!Transform的流程读本篇文章以前,相信同学们已经具备Transform的使用基础。相信很多人都看过这张图:Transform过程正如上图中展示的,我们可以看到:•在一个项目中,我们可能既会有自定

Android:hook很“危险”,使用需谨慎。

前言上篇文章《Android安卓进阶技术分享之AGP工作原理》和大家分析了AGP(AndroidGradlePlugin)做了哪些事,了解到AGP就是为打包这个过程服务的。那么,本篇文章就和大家聊一聊其中的Transform,解决一下为什么在AGP3.x.x的版本可以通过反射获取的transformClassesWithDexBuilderForXXXTask在4.0.0的版本就不灵了?源码走起!Transform的流程读本篇文章以前,相信同学们已经具备Transform的使用基础。相信很多人都看过这张图:Transform过程正如上图中展示的,我们可以看到:•在一个项目中,我们可能既会有自定

vite vue3 规范化与Git Hooks

在《JS模块化》系列开篇中,曾提到前端技术的发展不断融入很多后端思想,形成前端的“四个现代化”:工程化、模块化、规范化、流程化。在该系列文章中已详细介绍了模块化的发展及四种模块化规范。本文简单聊聊规范化中的git规范。1规范化在企业级开发中,“一千个读者有一千个哈姆雷特”是很常见的事,每个程序员对技术的理解、视角和掌握程度参差不齐,导致编写的代码五花八门。规范化包括很多,我在企业实践中重点关注两个方面:代码规范和git提交规范。代码规范最基础的是代码格式,不同的代码格式虽然运行起来没有问题,但代码超级难看,代码乱七八糟、一堆warning,虽然不影响运行,但看着太恶心,就像下面的情形:估计是为

vite vue3 规范化与Git Hooks

在《JS模块化》系列开篇中,曾提到前端技术的发展不断融入很多后端思想,形成前端的“四个现代化”:工程化、模块化、规范化、流程化。在该系列文章中已详细介绍了模块化的发展及四种模块化规范。本文简单聊聊规范化中的git规范。1规范化在企业级开发中,“一千个读者有一千个哈姆雷特”是很常见的事,每个程序员对技术的理解、视角和掌握程度参差不齐,导致编写的代码五花八门。规范化包括很多,我在企业实践中重点关注两个方面:代码规范和git提交规范。代码规范最基础的是代码格式,不同的代码格式虽然运行起来没有问题,但代码超级难看,代码乱七八糟、一堆warning,虽然不影响运行,但看着太恶心,就像下面的情形:估计是为

ahooks 中那些控制“时机”的hook都是怎么实现的?

本文是深入浅出ahooks源码系列文章的第五篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本文来探索一下ahooks是怎么封装React的一些执行“时机”的?FunctionComponentVSClassComponent学习类似React和Vue这种框架,对它们生命周期的掌握都是必须的,我们需要清楚的知道我们代码的执行顺序,并且在不同的阶段执行不同操作的代码,比如需要挂载完成之后才去获取dom的值,否则可能会获取不到相应的值。ClassComponent使用过React的ClassComponent的同学,就会知道其组件生命周期会分成三个状态:Mounti

ahooks 中那些控制“时机”的hook都是怎么实现的?

本文是深入浅出ahooks源码系列文章的第五篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。本文来探索一下ahooks是怎么封装React的一些执行“时机”的?FunctionComponentVSClassComponent学习类似React和Vue这种框架,对它们生命周期的掌握都是必须的,我们需要清楚的知道我们代码的执行顺序,并且在不同的阶段执行不同操作的代码,比如需要挂载完成之后才去获取dom的值,否则可能会获取不到相应的值。ClassComponent使用过React的ClassComponent的同学,就会知道其组件生命周期会分成三个状态:Mounti

Windows下x86和x64平台的Inline Hook介绍

前言我在之前研究文明6的联网机制并试图用Hook技术来拦截socket函数的时候,熟悉了简单的InlineHook方法,但是由于之前的方法存在缺陷,所以进行了深入的研究,总结出了一些有关Windows下x86和x64架构程序的InlineHook方法。本文使用的方法并非最优,也没有保证安全,但是用较少的代码实现了所需的功能,非常适合用来学习InlineHook的基本原理和一般的使用方法。由于本文是在Windows平台下的,所以你需要对Windows系统的机制需要有一定的了解;同时本文的代码基于C语言(当然C++编译器也可以编译),所以你应该要有C语言的基础(尤其是对指针的理解);此外,你还需要