- 博客(101)
- 收藏
- 关注
原创 程序中关于时间和比较运算符的单词
在日志中,我们经常碰到关于一些时间的单词缩写比如这个Fri Dec 1就代表了Friday (星期五), December (十二月)12月1日星期五或者使用date查看时间的时候WedDec1305:55:54PMCST“PM” 是英文单词 “post meridiem” 的缩写,意为 “午后” 或者 “下午”。PM (post meridiem): 从中午12:00 ~ 晚上23:59AM (ante meridiem):从凌晨0:00 ~ 中午 11:59。
2023-12-13 18:19:01
691
原创 LOWORD, HIWORD, LOBYTE, HIBYTE的解释
从这里来看,他们是以两个字节为操作对象,哪怕给出的数据是int类型的数据。按照我的猜测以WORD结尾的就是以4个字节为操作对象了。以小端序来看 0x12345678在内存中的存储为。LOBYTE 取出了内存中最低的一个字节0x78。LOWORD 是取出内存中低地址的前两个字节。HIWORD 是取出内存中高地址的后两个字节。可以看到以WORD结尾的是取出两个字节。HIBYTE 取出了第二个字节0x56。0x78在低地址,0x12在高地址。BYTE结尾取出一个字节。此时a在内存中的表示为。
2023-11-15 19:07:20
1781
原创 BUUCTF [GWCTF 2019]pyre 1
参考Python 并非完全是解释性语言,它也存在编译。先将源码文件 *.py 编译为 *.pyc,然后由 Python 的虚拟机执行PYC文件是Python编程语言的字节码文件。当Python程序执行时,Python解释器会将.py文件转换为字节码,然后将其保存为.pyc文件。这样在下一次执行时,Python解释器可以直接使用.pyc文件,而无需再次编译源代码。这通常会导致更快的程序执行速度。pyc文件可以直接被python解释器执行。
2023-10-28 14:07:46
443
原创 数字签名 及 数字证书 原理笔记
如果对一些加密算法不懂可以参考这篇文章我认为的数字签名通过公钥和私钥实现,通过对文件进行hash算法生成唯一hash值(摘要),再通过私钥进行加密得到自己的数字签名,由公钥来验证数字签名验证。
2023-10-17 19:24:29
420
原创 上网冲浪发现多处XSS
今天上网冲浪,突然想起来有一种神器,叫废话生成器,之前是在哪里下了个软件玩了一下,然后就给删除了,因为我觉得这个软件不过就是调用了一个web接口实现的,一个网页能解决的事还要我下一个软件。于是乎,我搜索找到一个网站点击生成后,一篇牛头不对马嘴的文章生成了,当时就挺好奇的,我多次点击生成,反应速度也快,而且内容相似我ctrl + f进行搜索这个关键字。看到结果的瞬间脑子里突然有个想法,有没有可能有XSS漏洞呢,因为结果直接反应在网页上于是乎果然,有XSS注入,我换成了图片。
2023-10-16 20:22:09
655
原创 Jinja2模板注入 | python模板注入特殊属性 / 对象讲解
在进行模板利用的时候需要使用特殊的属性和对象进行利用,这里对这些特殊属性及方法进行讲解以下实验输出
2023-10-16 01:25:03
431
原创 BUUCTF jarvisoj_level0 1
64位ubuntu18以上系统调用system函数时是需要栈对齐的。再具体一点就是64位下system函数有个movaps指令,这个指令要求内存地址必须16字节对齐。跳过了push rbp之后,rsp就少压栈了8字节,此时栈16位对齐。
2023-10-14 20:03:04
486
原创 BUUCTF pwn1_sctf_2016 1
查看文件信息然后进行反汇编关键信息说实话,这个应该是C++编写的程序,C++基础还是不行,我硬是没看懂这个代码我查了一下字符串这里的get_flag是函数,另一个应该就是执行的一个命令了到IDA中查找TAB切换到汇编,再空格先给他地址记下08048F0D这里网上说是把I换成you导致了溢出,输入I就多出了2个字符,s的空间为32字节,足够我们溢出8字节了。
2023-10-14 19:31:50
222
原创 UTF-16编码原理讲解
UTF-16(16 bit Unicode Transformation Format)即16位的Unicode转换格式,以16位即双字节为编码单元UTF-16的编码对象就是unicode。
2023-10-12 14:18:18
1869
原创 notepad++进行UTF-16编码的时候前面出现FFFE
notepad++在使用UTF-16编码时,会自动加上 BOM 来标识大端序和小端序如果是FF EF就是小端序如果是FE FF就是大端序。
2023-10-12 13:03:19
620
原创 UTF-8的编码与解码
UTF-8编码是一种可变长度编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。UTF-8编码也能够表示全世界所有的字符。UTF-8 是 Unicode 的实现方式之一。
2023-10-12 10:29:48
1094
转载 unicode编码原理及问题
unicode实际上是一个字符与数字之间的映射关系表,并没有实际的编码方案,因此制定了UTF标准,包括UTF-8,UTF-16,UTF-32等,Unicode是一个设计图,而UTF为理论的实现。
2023-10-11 22:37:49
208
原创 BUUCTF [BJDCTF2020]JustRE 1
sprintf将格式化后的字符串输出到String中。shift + F12搜索字符串。一路跟踪到汇编窗口,然后F5。发现类似flag的字符串。最终String的值为。
2023-10-11 11:28:31
364
原创 BUUCTF [GXYCTF2019]luck_guy
偶数时进入get_flag函数 ,这里不会传递任何参数。这里读取输入,并且将输入传递给了patch_me函数。此时再结合case 1的f1的数据,那么就是flag。我们点击s后面的值,然后按r,他就会变成字符串。当随机数字为5时,会对f2进行一系列操作。发现当数字等于4的时候为f2初始化了值。我们复制下来然后运行一下看看结果如何。上面判断我们输入的数是否为奇数。如果为1,输出这是flag。使用DIE查看文件信息。
2023-10-11 11:16:34
218
原创 BUUCTF Java逆向解密 1
Class文件是Java编译后的二进制字节码文件。我这里使用的是jadx-gui,直接将class文件拖进去即可代码的逻辑也非常简单主要就是我们输入的值最后需要等于KEYList这个数组,而KEYList的值就是
2023-10-10 20:05:53
1039
原创 BUUCTF SimpleRev
该文件为64位的ELF文件,运行在linux平台使用IDA64打开进入Decry函数输入flag和成功的提示看看如何才能成功拿到flag这里比较text和str2,text是源代码就有的那么str2应该就是我们输入的内容先分析text的内容是什么进入join函数该函数将两个输入字符串连接在一起,并返回一个新的字符串,表示连接后的结果。我们不难得到text的值点击一下0x776F646168LL然后按r因为是小端序,所以低位在前,高位在后,所以最后需要反过来。
2023-10-10 17:50:19
126
原创 BUUCTF 不一样的flag 1
可以看到这里进行了最终的判断,等于49就直接退出,等于35就是等同于获取到了flag。那我们最开始运行程序的时候发现2可以输入3次都不会撞墙,其他的第一次就是撞墙了。这应该就是迷宫问题,有着上下左右,最后走到终点的输入应该就是flag。通过这里我们不难猜出,1就是墙,#就是终点,最开始的*应该就是入口了。这里点击49这个数字,然后点击r,对下面的35进行同样的操作。输入2的时候可以多输入几次,其他的一下就没了。2是向下,迷宫不大,那么我们可以画图理解一下。使用StudyPE看看文件信息。
2023-10-10 15:43:33
238
原创 BUUCTF helloword 1
下载下来是一个apk文件,也就是手机的app。使用jadx-gui反编译。点进去直接就能看到flag。选择导航 -> 文本搜索。
2023-10-10 14:19:21
280
原创 BUUCTF xor 1
这段代码将当前字符和前一个字符进行异或,所以我们只需要编写程序倒推出来即可。flag的长度需要为33,最终通过一段代码得到global。对该地址shift + e提取数据。首先我们需要得到global的值。使用DIE工具查看文件类型。
2023-10-10 02:34:18
203
原创 BUUCTF 新年快乐 1
加壳是通过在原始可执行文件周围包装一层额外的代码(壳)来实现的,这个壳在运行时负责解密、加载和执行原始程序。程序刚开始加载的时候,最先开始就是执行壳程序,壳程序将所有的寄存器进行压栈,保存壳执行前所有寄存器的状态。像这个UPX的壳就是压缩壳,可以有效的压缩程序的体积,在分析该程序之前我们就需要先去壳才行。然后再同目录下会出现SCY结尾的一个程序,这个就是脱壳之后的程序,使用IDA32打开。可以看到一个pushd的断点,删除其他的断点,留下pushad这个断点。下面的文件类型显示有一个UPX的壳。
2023-10-10 01:22:11
166
原创 软中断int 3汇编指令
int 3在机器层面触发了一个软中断(软件中断)。:这是为了在中断处理完成后能够恢复程序执行前的标志寄存器状态。:CPU会禁用硬件中断,以防止其他硬件中断在中断处理程序执行期间干扰。:int 3 的中断号是3,这个号码会告诉操作系统或调试器这是一个软中断请求,需要执行相应的处理。:CPU会查找一个叫做中断向量表的数据结构,这个表包含了不同中断号对应的中断处理程序的入口地址。对于int 3,它会查找中断向量表中第3个条目。:CPU会跳转到中断向量表中指定的中断处理程序的入口地址。
2023-10-09 10:48:48
794
原创 BUUCTF [BJDCTF2020]EasySearch 1
.swp” 后缀通常用于表示 Vim(一种文本编辑器)的交换文件。Vim 是一个强大的文本编辑器,它在编辑文件时会创建交换文件以确保文件内容的安全性。
2023-09-25 17:09:21
222
原创 报错解决: 未能解析此远程名称: ‘raw.githubusercontent.com‘
报错解决: 未能解析此远程名称: 'raw.githubusercontent.com'
2023-09-22 10:13:53
3241
原创 无法打开文件(xxx.apk)(无法成功完成提作,因为文件包含病毒或潜在的垃圾软件。) 问题解决
无法打开文件(xxx.apk)(无法成功完成提作,因为文件包含病毒或潜在的垃圾软件。) 问题解决
2023-09-20 01:25:06
424
原创 grep多行匹配以及一些问题
允许多行匹配,即使匹配跨越了换行符的行。如果此时中间有0a那么就是导致匹配不上的原因。使用xxd可以看到二进制下的文本内容。: 启用Perl正则表达式模式。但是有的时候也匹配不到,为什么呢。有0a的情况下匹配多行文本。有没有大佬可以解释下为啥。: 只输出匹配的部分。使用grep多行匹配。
2023-09-18 12:37:39
783
原创 报错:appium AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
【代码】报错:appium AttributeError: 'NoneType' object has no attribute 'to_capabilities'
2023-09-17 19:00:59
3662
2
空空如也
burp修改文件上传包无法修改文件后缀名
2022-09-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人