自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 某网课m3u8视频流hls.js算法逆向

需要了解m3u8基础知识,可在下方链接阅读笔者之前的文章。

2023-11-02 19:40:02 1963 1

原创 python 无符号左移

【代码】python 无符号左移。

2023-11-02 02:23:01 179

原创 python 提取ts文件数据

TS文件是一种基于MPEG-2传输流的容器格式,通常用于数字电视广播和流媒体传输。TS文件由一系列的数据包(Packet)组成,每个数据包的大小为188字节。每个数据包包含了一个4字节的同步头(Sync Byte),用于标识数据包的开始。在TS文件中,不同的数据流被分为多个PID(Packet Identifier)。例如,视频流通常使用PID 0x100,音频流通常使用PID 0x101。每个数据包都包含了一个PID,用于标识该数据包所属的数据流。

2023-11-01 02:55:22 895 1

原创 js内取到的m3u8key值数组带负号怎么解

把类型转换成Uint8,每个数值都和 0xFF 做一次与运算再试试,具体的要了解计算机是怎么表示负数的才能明白是咋回事。看过很多帖子内key内部的值都是正值,我找到的里面有负值,去掉负号转换后还是无法解密。

2023-11-01 02:42:12 143

原创 npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动

造成上述问题的原因是因为node的默认安装环境在国外,因此我们只需要修改下镜像的地址即可。3、此时可以继续输入之前的npm install 命令啦。

2023-10-28 15:04:08 937

原创 Pycharm中修改运行快捷键

在Pycharm中默认运行的快捷键是Ctrl+Shift+F10。如何修改Pycharm运行的快捷键?以后按F5即可运行,比较方便。

2023-10-24 22:46:38 377

原创 《JS学习》AST - 关于path/node/Scope/Binding属性和方法

path常用属性总结:在本文中,选出部分常用的属性大家参考,更多的知识请自行学习源码。......path.nodepath源码学习:在本文中,选出部分常用的方法大家参考,更多的知识请自行学习源码。path常用方法介绍const {node} = path;......在本文中,选出部分常用的属性和方法供大家参考,更多的知识请自行学习源码。

2023-10-20 21:50:09 466

原创 《JS学习》AST - 调用babel库反混淆代码模板

出处 @蔡老板 的文章。

2023-10-20 20:48:51 215

原创 《JS学习》AST - 概念 + 环境安装 + 节点介绍

答:在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。(摘自百度百科)关键词:源代码,树,语法,抽象。既然是一棵树,那肯定有节点,或者遍历相关的概念。

2023-10-20 19:34:06 559

原创 《算法还原 - CTF》逆向exe程序 + ida Pro 反汇编分析伪C代码 + python算法复现

二进制安全,能干什么逆向分析:负责成品软件的技术原理. 比如分析竞品软件,吸取技术上的优点,进行技术难点公关病毒分析:负责分析病毒样本.研究恶意代码的技术手段等工作.主要是在安全公司,尤其是在杀毒软件公司需求较多.如360 、腾讯电脑管家等.漏洞挖掘分析:负责分析漏洞样本,或者漏洞的挖掘.目前二进制的主要方向.涉及范围广,从主流浏览器 虚拟机 内核到IOT 还有android 和 IOS移动平台.移动安全:负责移动端安全.如移动端的漏洞挖掘,还有加壳混淆等安全开发:包含较广.比如硬件平台,内核安全

2023-09-10 05:48:29 11583 2

原创 《算法还原 - CTF 》Crypto篇 十题

观察最后的AA,联想到base64编码最后常出现的==,A的ASCII码值为65,=的ASCII的码值为61,分析可能是base64编码做了偏移,尝试将密文所有字符的ASCII码值-4,然后再做base64解码。遍历密文字符串的每个字符,获取它的ascii码值,-4之后转化为新的ASCII字符,拼接转化的字符之后获得还原的base64字符串,然后再做base64解密。这里的4就相当于凯撒密码的密钥。2的七次方为128,每组转换十进制数都减去128寓意二进制去掉了最高位的1。看一下上面这串字符,也是乱序的~

2023-09-10 02:13:30 1824

原创 《算法还原 - 练习》js 与 py 互转

【代码】《算法还原 - 练习》js 与 py 互转。

2023-09-09 06:02:28 105

原创 《算法还原 - 练习》CTF题目 + Py与Js函数

逆运算

2023-09-09 03:07:39 178

原创 《算法还原 - 基础》位运算 + 算数运算 + 汇编指令 + 有/无符号数

右边移出位被丢弃,左边移出的空位补符号位(最左边那位)。该操作也称为“符号位传播右移”(sign-propagating right shift)或“算术右移”(arithmetic right shift),因为返回值的符号位与第一个操作数的符号位相同。按位异或(^)运算符在两个操作数有且仅有一个对应的二进制位为 1 时,该位的结果值为 1。按位或(|)运算符在其中一个或两个操作数对应的二进制位为 1 时,该位的结果值为 1。按位与(&)运算符在两个操作数对应的二进位都为 1 时,该位的结果值才为 1。

2023-09-08 21:48:39 121

原创 《APP逆向学习》Windows注意事项、cmd、环境变量、Terminal

在之前,有介绍,快捷键win+r的方式打开运行,输入cmd,打开命令行,可以叫做终端也可以叫做shell,实际上在window中还有另外一个shell,我们在任意目录下按shift再点击鼠标右键。假如你有一个可执行程序,你想在任意目录访问它,你需要将文件所在的目录,添加到path变量里去,这样的话,如果在当前目录找不到的话,它会去环境PATH变量里找,如果也找不到,就会报错。如果还找不到,说明需要重新开一下cmd,因为cmd在启动时会加载环境变量,没有重新开,打开的窗口还是之前的环境变量。

2022-11-11 03:24:46 408 1

原创 《APP逆向学习》课程介绍和什么是安卓app逆向?

安卓逆向用到的语言很多,比如java,c,c++,JavaScript,python,当然我们接触最多的自然是java和c。adb与Linux命令行:因为我们是要从pc端操作手机的,推荐真机,但是不管真机还是模拟器,adb的操作都是避不开的,因为安卓系统底层的话,就是基于Linux内核开发的,所以里面的shell命令的话,跟Linux非常相似,所以有必要学。

2022-11-11 01:11:02 3317

原创 《JS、PY、E》2篇小算法,位运算符

【代码】《JS、PY、E》2篇小算法,位运算符。

2022-10-20 15:06:35 420

原创 《JS学习》原型与原型链

​ 1.​ 2. 无论何时,只要创建了一个函数,就会根据一组特定的规则为该函数创建一个prototype属性,这个属性指向该函数的原型对象,所有原型对象都会获得一个constructor属性,这个属性包含一个指向prototype属性所在函数的指针。​ 3. test1和test2都是构造函数Test()的实例对象,test1.__proto__指向了Test函数的原型对象prototype,而Test.prototype.constructor又指向Test函数。

2022-10-12 03:32:40 98

原创 《JS学习》作用域与作用域链

​ 每个JavaScript函数都是一个对象,对象中有些属性我们可以访问(例如name属性),但有些不可以,这些属性仅供JavaScript引擎存取,scope就是其中一个。scope指的就是我们所说的作用域,其中存储了运行期上下文的集合。即作用域决定了代码区块中变量和其他资源的可见性。​ 总结:变量和函数的可访问范围,控制着变量和函数的可见性与生命周期变量的作用范围。

2022-10-12 02:51:49 84

原创 《JS学习》数据类型

​ 当基本字符串需要调用一个字符串对象才有的方法或者查询值的时候 (基本字符串是没有这些方法的),JavaScript 会自动将基本字符串转化为字符串对象并且调用相应的方法或者执行查询。​ 字符串字面量 (通过单引号或双引号定义) 和 直接调用 String 方法 (没有通过 new 生成字符串对象实例) 的字符串都是基本字符串。​ 有时,你的代码可能含有很长的字符串。​ JavaScript 会自动将基本字符串转换为字符串对象,只有将基本字符串转化为字符串对象之后才可以使用字符串对象的方法。

2022-10-12 01:51:14 145

原创 【Python学习】进制转换

操作:在format函数的槽中添加一个b 即可实现其他类型对2进制的转换,下面举例说明。操作:在format函数的槽中添加一个o 即可实现其他类型对8进制的转换,下面举例说明。操作:在format函数的槽中添加一个x 即可实现其他类型对2进制的转换,下面举例说明。注意:由于转换成10进制本来就是不带前缀的,无需用format格式化数字方法控制。传入的参数可以是2,8,16进制的,输出是字符串形式。x可以是二进制,八进制,十进制,十六进制。输出:1000001000。

2022-10-08 13:22:58 8677

原创 【算法】位运算符基础之某CTF赛题使用Python与易语言纯算法还原

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。位运算(Bit Manipulation,也叫位操作)说穿了,就是直接对整数在内存中的二进制位进行操作。运算符号含义Pascal语言C/C++语言。

2022-10-07 22:22:04 1025

原创 【Python学习】xpath解析

XPath,全称 XML Path Language,即 XML 路径语言,它是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。xpath解析原理:环境安装如何实例化一个etree对象将本地的HTML文档中的数据加载到该对象中:(解析本地本件第二个参数最好加上,不然可能报错)可以将互联网上获取的源码数据加载到该对象中xpath语法下面列出了最常用的表达式实例路径表达式解释bookstore选择bookstore元素。/b

2022-10-07 16:02:36 1713 1

原创 【Python学习】http网站发送请求

其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。在上面爬取百度首页时,response = requests.get(url=url)其返回的是一个响应对象,而如果我们想要获取具体的数据比如响应码或者网页源码时,就需要通过指定响应对象的属性进行获取。且在指定方法发送请求的时候,有时候还需要在请求方法括号中requests.get(url=url, xx = xx)指定一些参数,如下。环境安装:pip install requests。

2022-10-07 14:03:20 522

原创 易语言语法的25个练习题

易语言语法的25个练习题

2022-10-03 22:16:12 1226

原创 《JS学习》Object对象

JavaScript中的对象其实就是一组数据和功能的集合。通过new操作符后跟要创建的对象类型的名称来创建。​ new:​ 从指定模具中复刻出一个一模一样的空间,此空间与外界隔离,视为实例。​ 由上可得new运算符就是进行创建空间与外界隔离后得到实例的一个过程。这里的Object相当于祖宗一样,创建Object的实例并没有什么用处。特点:JavaScript中几乎所有的事务都是对象,比如我们的函数。​ Function。

2022-09-30 20:56:26 806

原创 《JS学习》变量声明

​ 作用域:​ var声明的是全局作用域或函数作用域;而let和 const 是块作用域。​ 声明初始化:​ var和let在声明的时候可以不进行初始化;而 const 在声明的时候必须初始化。​ 修改与重复声明:​ var在可以修改和重复声明;而let只能修改,不能在同一作用域下重复声明;const 声明常量不可修改也不可重复声明。​ 变量提升:​ var声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined;

2022-09-30 18:09:53 499

原创 Python的文件读写

在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。Python open() 方法用于打开一个文件,并返回文件对象。

2022-09-30 17:17:13 81

原创 Python语法之列表生成式的13个练习题

列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式。Python 列表推导式是什么列表推导式是 Python 语言特有的一种语法结构,也可以看成是 Python 中一种独特的数据处理方式,它在 Python 中用于 转换 和 过滤 数据。其语法格式如下所示,其中 [if 条件表达式] 可省略。下面通过例题来对列表生成式进行深入的理解。

2022-09-18 15:35:40 4187

原创 Python语法的25个练习题

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。{}

2022-09-13 17:51:53 2148

翻译 分析 WebAssembly 二进制文件 - Wasm 逆向工程

我们最近发表了一篇关于WebAssembly (Wasm)的安全问题和基本概念的博文。作为后续,这篇文章将介绍 Wasm 应用程序的逆向工程。考虑一下您遇到未知 Wasm 应用程序的场景,您需要弄清楚它的作用。你将如何分析它?目前几乎没有任何关于该主题的有用文档,因此我们决定部分填补这一空白。Wasm 应用程序可以通过不同的方式进行分析。今天我们将通过一个非常简单的应用程序来介绍 Chrome 内置的 Wasm 调试功能。随着我们的进行,一些理论将被介绍。想要直接了解更多技术内容的不耐烦的读者可以从附录

2022-04-18 19:32:25 3467

翻译 分析 WebAssembly 二进制文件:初步感觉和行为分析

几个月前,我们发表了一篇关于逆向工程 WebAssembly (Wasm) 应用程序的介绍性博客文章。鉴于在此期间 Wasm 的使用和覆盖范围不断增加,现在似乎是重新审视该主题以分析未知二进制文件以及同时可用的一些工具的好时机。这篇文章将介绍 Wasm 的内存结构,然后着眼于对未知(-ish)样本执行高级行为分析,稍后我们将跟进另一篇文章,我们将手动分析相同的 Wasm 样本,但会更深入。注意:在本系列博客文章中,我们使用了 GitHub 上的几个公开可用的工具。在您的计算机(或者,更好的是,您的 .

2022-04-18 19:25:33 682

翻译 WebAssembly 的手动逆向工程:静态代码分析

在我们上一篇关于 WebAssembly (Wasm) 的博客中,我们初步了解了一个未知的 Wasm 二进制文件,并对其进行了一些行为分析。今天我们将继续研究相同的 Wasm 样本,但会更深入。我们将通过查看 Wasm 文本格式来手动分析它。为了能够手动分析 Wasm 文本格式,我们需要先学习更多理论。我们之前的博客文章描述了如何处理内存和数据。在此基础上,我们将介绍一些对逆向工程 Wasm 有用的附加概念,然后应用新获得的知识来分析 Wasm 样本。注意:这篇文章是一个系列的一部分。该系列的.

2022-04-18 19:12:41 1161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除