- 博客(129)
- 收藏
- 关注
原创 reverse —— > RC4
总结:基于,我自己的理解,RC4 对于脚本的编写 一个S和T的生成 初始化,为密钥流生成提供环境一个生成密钥流。
2024-10-31 20:09:02
552
原创 学习笔记——Test.pwn
存在错误,或者解释不通的地方,还请提出,已补足笔记的缺陷。Pwn是什么?我Pwn掉了你的电脑、我Pwn掉了你的设备……通俗的讲,Pwn,大概就是,取得你所掌握的权限,或者高于你的权限。从而达到某些目的。而,接触Pwn必不可少会接触三个词语:(我的理解)exploit —— 编写攻击脚本的方案与策划shellcode —— 取得对方交互,命令行payload —— 攻击代码以目前,笔者的学识,理解也不会很深入。学习Pwn必备的知识:多的不说,C语言、python、汇编语言、操作系统等。
2024-10-18 22:13:13
933
原创 Pwn---学习之路
思路,因为已经知道,esp到ebp的距离为10h(16) 、ebp占4h(4)【这里 我也得继续理解】因为,堆栈的数据溢出,造成系统数据被覆盖,导致程序原有逻辑被打破,也就是,所说的栈溢出。所以:若,我们想要造成溢出,只需要 脱离堆栈平衡的状态,跳出EBP(也就是栈底。—— 造成了堆栈平衡的破坏,数据泄露。gets() —— 无限制获取输入字符,危险函数。p32() —— 将整数转为32位字节型数据。p64() —— 将整数转为64位字节型数据。sendline() —— 写入长数据。
2024-10-17 11:13:19
473
原创 攻防世界----->Replace
没必要去,硬 v6 v7的值 >>>v5>>>a1[i] ——没必要。因为它的计算与传入的 a1(input) 没有任何关联,所以值是可以进行计算的。因为(v11 + v12) ^ 0x19 的值(已知)地址随机化,并不影响你静态分析,只对动调影响,对于这题影响不大。很妙啊~(兴奋,通过溢出取值,实现变量表( 奇->偶 ),)感觉,接触了其他方向,确实是有助于reverse学习的。猜测又是 地址随机化(ASLR)---遇见过。观察:算法比较独立,发现没有?跟进 encode看看;然后可以正常运行了。
2024-10-08 17:01:05
459
原创 攻防世界---->工业协议分析2
直接将flag字符转16hex 搜索就好。PCAPNG 说明是一个网络数据包文件。那么直接用Wireshark查看分析。长度都是58,我们去找变动点。
2024-10-08 11:39:43
350
原创 攻防世界 告诉你个秘密
一开始以为是16进制转2进制的莫斯,但,,并不是。别的不说,base64 老客户了,直接猜测。有空行,,,栅栏密码?仔细看,数字组合居多 字母不超过E。试着将16进制转成ASCII字符。能和键盘联动,这我真没想到。大概可以猜测这是16进制。
2024-10-07 14:43:05
402
原创 Crypto虐狗记---”你“和小鱼(一)
前言:作为reverse的拓展算法学习。大小写字母(26个)+数字格式。做题,这也能虐狗啊?猜测----base64。
2024-10-07 01:33:23
214
原创 (杨辉三角) 攻防世界--->notsequence
仿佛又回到高中 - - 只不过,是以另一种形式再次出现。学习思维为主,做题位次。(后面再补。前置知识:什么是杨辉三角:杨辉三角_百度百科 (baidu.com)重点:提炼:(部分)用代码实现:参考:【C语言】四种方式使用C语言输出杨辉三角前10行_输出杨辉三角形的前10行-优快云博客前置分析:①:②:③:④:回归正题。
2024-10-05 20:14:29
703
原创 攻防世界----->easyre-153
练习 此前 lol(buf) 传入的是父进程的buf 而父进程的功能只有读,读子进程的内容。选择NOP掉>>>> mov [ebp+var_C], 0。(因为一个函数只存在一个打印函数,就很可疑。注意:攻防世界中,提交格式是RCTF{rhelheg}。有点像此前做的那个进程互斥。永远跳转 flag_is_not_here。很明显: v2的值就是这段数字。当你这样传送值,那有什么必要用jnz?代码:(直接拿出来给C跑。UPX,---脱壳。
2024-10-03 12:14:02
273
原创 buuctf--->Youngter-drive
关键是 提高对win32 API的重视程度,如果 不知道 createMutexW互斥 那想都别想做。Youngter-drive - PYozo_free - 博客园 (cnblogs.com)”Source“很眼熟,在字符判断时也出现过,猜测是input。脚本:不会,不想动脑筋(思路清晰,不想写。因为这题运行不起来,调试不起来,会报错,只能纯分析。看见的一瞬间就知道,是某种表以及某种加密。所以,我先看的字符串:>>>信息收集。跟踪sub_411940就好。所以,此时可以综合所有已知的。
2024-10-02 01:59:48
522
原创 buuctf---->[WUSTCTF2020]level3
认知:关于这base64具体的加密算法,懂得不是很多,如果不知道有没有进行魔改,可以提出来去C中跑一下就知道了。(其实更推荐动态,当然在能动态的情况。思路:常规做题,肯定首先需要想到 “表”的问题 其实是”算法“的问题。>>>这里能够证明,此时,还是属于常规的base64加密。置换表出来,在线工具或者用python库函数都可以。这表看起来,很正常,默认的为什么会加密不出来?一 能动态的情况下去动态获取修改后的表;猜测: 可能是哪里进行了魔改。仔细对比你会发现点毛病。得,表做了变换处理。
2024-10-01 16:27:43
297
原创 攻防世界---->crazy
tips:这题加载了混淆函数等 ida 反正我跳不过去,pwndbg我用的不是很熟悉。清晰可见,而且此后的[rbp+var_28],都是作为值传给其他指令,没有作为接收。还是先看v2,因为在ida中 我们已经确定了v2肯定是加密input的。题外话: 最开始我Tmi 以为我思路错了。疑问:你怎么确定,此前看到的那段数字+字母的组合就是密文?那就直接跟踪它,找到第一次引用的地方。先解决第一个问题 ——是不是输入的长度为32。## 最近在学渗透测试,每天只做一道题。所以,v4也是对于input的加密。
2024-09-30 18:44:30
322
原创 攻防世界---->happyctf
锁定地址 追踪看看。(此题,ida不能动态 od可以的。说白了,就是一个用于判断 flag ==key的。所以实际,是我们输入进行了xor。追踪 good job。
2024-09-28 14:01:56
423
原创 ctf.show---->r3
而在关键算法中,v17【1~5】都是定值(已写在内存,仅只有v5更变,而v5输入也没有做任何变形。所以实际,v19就是input的值。在v19的接收中,【只会接收第六位的数】且【去除最后一位】----为了演示原理。那么,是不是仅需要当 v5等于0时 就能求解出 算法中v17【1~5】的值。但是问题是v19怎么来的,代码中,没有涉及到v19如何而来?计算: 0xFFFF - v17【1~5】的值>>> v5。咳,这里 其实更建议用flag{1a9f},因为你要提交。当输入123456时。
2024-09-26 20:27:23
230
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人