自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [GWCTF 2019]re3

开始的 60 KB 内存区域设置为可读、可写、可执行。这通常用于动态代码生成,如 JIT 编译器,或者更改加载到内存的数据的权限,以允许执行。mprotect函数将dword_400000处的0xF000长度地址修改成了可读可写可执行,sub_402219()里的数据进行了异或处理。base64码表两次MD5加密存入V1(判断MD5可以通过特征码或者是Findcrypt插件)是一个 Unix/Linux 系统调用,用于更改一个进程地址空间中某个区域的保护属性。动调提取两次MD5加密的数据。

2024-01-09 16:07:27 397

原创 [网鼎杯 2020 青龙组]jocker

我们从这里也可以看出来它把str传给了Destination但是并没有利用到Destination所以也没有什么意义,而真正在flag则藏在下面了。我们回到主函数处,按tab键转换为汇编窗口,往下翻找到call 指令部分,进行修复sp指针偏移值。根据这里所谓的提示我们大概就能知道这里的flag就是假的,但是我们来试一下?v2是我们这里的值 我们可以shift+e或者右键如下。点击encrypt发现有错误提示。然后在下面进行提取就好了。非常明显的假flag。

2023-11-28 19:51:46 42

原创 [专项训练]RC4

RC4分为两个部分 一个是初始化 第二个就是加密或者解密了载入IDA以下是对这个程序进行的分析。

2023-11-25 17:47:50 58

原创 [GDOUCTF]tea

与常规的tea相比这里的do while里面的tea加密外面还有一层for循环来处理sum。不能直接以字符输出所以我们需要把我们输出的十六进制以字符串的形式进行输出。此处就是对加密的整体实现所以我们可以写tea的解密脚本来将其解密出来。所以我们也要对其进行处理 从最后往前进行处理。找到字符串窗口之后交叉引用再F5反编译。我们可以很容易看到更改的内容。修改一下名字这样更好看一点。而这里就是加密的密文了。

2023-11-25 11:12:13 80 1

原创 [HGAME2023]math

savedregs其的地址是[rsp+180h]所以&savedregs-368为[rsp+10h]这时候我们的思路就是写脚本一个一个把我们的v8也就是所输入的flag一个一个算出来。采用python的Z3约束求解(顺便学习一下这个知识)观察程序可以把这个类型改为char。

2023-11-24 11:37:04 49

原创 python中切片操作的详细用法

在Python中,切片操作是用于从序列(例如字符串、列表、元组等)中提取子序列的一种灵活且常见的方式。切片的基本语法是 start:stop:step,其中:start: 起始索引,表示切片开始的位置。默认为序列的开头(索引0)。stop: 结束索引,表示切片结束的位置。注意,实际取到的是索引值为 stop-1 的元素。默认为序列的末尾。step: 步长,表示从起始索引到结束索引的间隔。默认为1。使用负数表示逆向遍历。

2023-11-22 17:35:17 439

原创 [院赛2023]物转星移几度秋

通过这里我们可以知道首先是通过一个 rc4_init 然后 base64_encode最后与checkey进行判断。运行到此此时我们的sboxs已经出来了但是我们先F7单步进入base64加密里面。并在虚拟机中输入足够长的密码 因为后面会进行一个循环换表的过程需要足够的长度。所以只要我们输入正确的密码就可以拿到shell得到flag。观察特征我们可以知道他是每四个进行一个换表最后整合出来的。所以我们的思路就很明显就是通过远程动态调试来一步一步看。大概就是一个换表的base64然后进行与。

2023-11-22 04:15:47 37

原创 [院赛2023]babyAES

而前面对密钥也要一定的处理 但是已经是处理完了之后 所以我们可以直接通过动态调试来把我们所需要的值来进行提取。前面就是flag:flag{27a56058-5071-46de-bb43-c76bbe18}处理的点就是这两个函数 对密钥进行处理然后存入v12 再进行对比得出答案。在此处单步(F8)走到call memcmp就行了然后依次提取数据。按下回车键之后我们可以知道此时ida已经停了下来了。我们在此处进行下断点并用ida进行动态调试。根据题意我们可以知道是这个是AES加密。

2023-11-22 03:29:24 97

原创 [HUBUCTF 2022 新生赛]help

我们shift+e讲这里的数据提出来放入我们要写的脚本中 我们先看check里面。寻找最短路找出答案 最后不用忘了进行MD5加密哦~我们点进去 CreateMap()这个子程序。

2023-11-21 21:25:11 132

原创 [院赛2023]消失的眼角膜

unity逆向方法:unity游戏的主要逻辑、脚本 都在Assembly-CSharp.dll,因此我们可以使用dnspy之类的工具就能够轻易的反编译出源码。同理我们也可以选择通过游戏的判断机制 人物碰到刺就会死亡 如果我们修改这个判断机制也同样是可以达到目的到达下一关最后拿到flag。而前面对密钥也要一定的处理 但是已经是处理完了之后 所以我们可以直接通过动态调试来把我们所需要的值来进行提取。再依次查看的时候发现这里直接出现了flag代码的大意是通关到第五关可以直接拿到flag并且是没有加密的。

2023-11-21 17:10:13 65

原创 [HGAME 2022 week1]easyasm

考点: XOR ASM C++push ax 是一条汇编指令,它将 ax 寄存器的值压入堆栈。下面是对这条指令的详细解释:assemblyCopy codepush ax: 将 ax 寄存器的内容(16位值)推送到堆栈的栈顶。在堆栈中,数据是以先进后出(LIFO,Last In, First Out)的方式存储的,这意味着最后压入堆栈的数据会成为第一个弹出的数据。这条指令在这段代码中的作用是保存 ax 寄存器的当前值,以便稍后从堆栈中弹出并使用。

2023-11-21 16:02:47 101

原创 memcmp(v12, Buf2, 32u)

如果返回值小于 0,表示 v12 所指向的内存区域的内容在字典序上小于 Buf2 所指向的内存区域的内容。如果返回值大于 0,表示 v12 所指向的内存区域的内容在字典序上大于 Buf2 所指向的内存区域的内容。具体来说,memcmp(v12, Buf2, 32u) 的作用是比较从 v12 指针指向的内存位置开始的 32 个字节,与从 Buf2 指针指向的内存位置开始的 32 个字节是否相等。在这里,v12 和 Buf2 是两个指向内存区域的指针,而 32u 则是要比较的字节数。

2023-11-20 23:31:17 38

原创 printf(&Format);

简而言之,这段代码打印由 Format 变量的内容指定的格式化字符串。使用 &Format 是因为 printf 期望的是格式字符串的指针,而不是字符串本身。5 printf 函数期望格式字符串是指向以 null 结尾的字符串的指针。2 printf 的格式说明符通常是一个包含用于插入值的占位符的字符串。例如,%d 是整数的占位符,%f 是浮点数的占位符,依此类推。因此,&Format 获取格式字符串存储的内存地址。3 在你的代码中,似乎格式字符串被存储在名为 Format 的变量中。

2023-11-20 22:44:15 31

原创 memcpy函数

这个函数非常有用,特别是在需要在内存中复制大块数据时,例如复制数组、结构体或字符串。函数是C语言标准库中的一个函数,用于在内存之间进行字节块的复制。用于将字符串 "Hello, World!这个函数的作用是从源地址。个字节的数据到目标地址。

2023-11-20 21:22:20 40

原创 动态链接库基础与远程线程注入

【代码】动态链接库基础与远程线程注入。

2023-11-15 21:58:08 59

原创 字符串排序 51Nod - 1874 ---pair的使用

也就是求各自字符串的逆序对然后进行排序输出。

2023-11-15 04:57:16 31

原创 小明爱集合 51Nod - 3058---set的使用

把n+m看成一个整体,而set不包括重复的内容,因此n+m - set 就是不同的元素(即是多出的元素就是重复了的元素个数)

2023-11-15 04:04:20 40

原创 Stripies POJ - 1862 ---优先队列

InputOutputSample3723050120.000。

2023-11-15 02:55:39 44

原创 内存基础与相关结构

【代码】内存基础与相关结构。

2023-11-13 21:40:21 35

原创 P1928 外星密码---递归

解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 $\texttt{X}$ 会压缩为 $\texttt{[DX]}$ 的形式($D$ 是一个整数且 $1\leq D\leq99$),比如说字符串 $\texttt{CBCBCBCB}$ 就压缩为 $\texttt{[4CB]}$ 或者$\texttt{[2[2CB]]}$,类似于后面这种压缩之后再压缩的称为二重压缩。对于 $50\%$ 的数据:解压后的字符串长度在 $1000$ 以内,最多只有三重压缩。### 样例输入 #1。

2023-11-13 17:50:58 38

原创 线程基础与相关结构

【代码】线程基础与相关结构。

2023-11-13 00:26:35 141

原创 for循环反汇编分析

00A418AB jge 00A418C0 //jump great equal 大于等于则跳出。00A418AD mov eax,dword ptr [ebp-8] //把i值赋给eax。00A418B6 call 00A410D2 //上面push进入printf的两个参数。00A418BE jmp 00A4189E //执行完后进行i++//printf函数调用。

2023-11-10 22:43:17 40

原创 07 Python类的基本特性

【代码】07 Python类的基本特性。

2023-11-10 17:51:21 22

原创 05 python中的类

【代码】05 python中的类。

2023-11-10 13:15:42 19

原创 04 python的错误处理

【代码】04 python的错误处理。

2023-11-10 04:17:53 21

原创 03python中的函数

【代码】03python中的函数。

2023-11-10 03:56:09 21

原创 02循环控制语句

for i in range(100): #循环从0到99。username=input("请输入用户名:")print('用户名错误,请重新输入')print('登录成功')#for 计次 while 死循环。print('程序结束')

2023-11-10 03:43:03 26

原创 01.python学习笔记 基本数据类型

【代码】python学习笔记-1。

2023-11-10 03:32:49 28

动态链接库基础与远程线程注入

动态链接库基础与远程线程注入

2023-11-16

空空如也

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

TA关注的人

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