
CTF---reverse
各靶场reverse的学习。
十雾九晴丶
24.10.24 断更(被打了,专精渗透去了)
展开
-
AES-easy1.exe
AES算法。原创 2024-11-10 09:23:09 · 363 阅读 · 0 评论 -
reverse —— > RC4
总结:基于,我自己的理解,RC4 对于脚本的编写 一个S和T的生成 初始化,为密钥流生成提供环境一个生成密钥流。原创 2024-10-31 20:09:02 · 554 阅读 · 0 评论 -
Reverse.Kr刷题手册(持续更新)
最近上网,看见的网址,感觉还挺不错的,专门针对reverse、pwn 玩玩。原创 2024-10-21 22:10:10 · 488 阅读 · 0 评论 -
攻防世界----->Replace
没必要去,硬 v6 v7的值 >>>v5>>>a1[i] ——没必要。因为它的计算与传入的 a1(input) 没有任何关联,所以值是可以进行计算的。因为(v11 + v12) ^ 0x19 的值(已知)地址随机化,并不影响你静态分析,只对动调影响,对于这题影响不大。很妙啊~(兴奋,通过溢出取值,实现变量表( 奇->偶 ),)感觉,接触了其他方向,确实是有助于reverse学习的。猜测又是 地址随机化(ASLR)---遇见过。观察:算法比较独立,发现没有?跟进 encode看看;然后可以正常运行了。原创 2024-10-08 17:01:05 · 460 阅读 · 0 评论 -
(杨辉三角) 攻防世界--->notsequence
仿佛又回到高中 - - 只不过,是以另一种形式再次出现。学习思维为主,做题位次。(后面再补。前置知识:什么是杨辉三角:杨辉三角_百度百科 (baidu.com)重点:提炼:(部分)用代码实现:参考:【C语言】四种方式使用C语言输出杨辉三角前10行_输出杨辉三角形的前10行-优快云博客前置分析:①:②:③:④:回归正题。原创 2024-10-05 20:14:29 · 704 阅读 · 0 评论 -
攻防世界---->Newbie_calculations
CS_YOU原创 2024-10-04 15:13:39 · 423 阅读 · 0 评论 -
攻防世界--->testre
逆向,仅记住,逆推时,紧抓关键点,只看关键点,然后去猜。原创 2024-10-03 14:21:35 · 277 阅读 · 0 评论 -
攻防世界----->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 · 275 阅读 · 0 评论 -
攻防世界---->SignIn
RSA算法。原创 2024-10-02 09:47:46 · 452 阅读 · 0 评论 -
buuctf--->Youngter-drive
关键是 提高对win32 API的重视程度,如果 不知道 createMutexW互斥 那想都别想做。Youngter-drive - PYozo_free - 博客园 (cnblogs.com)”Source“很眼熟,在字符判断时也出现过,猜测是input。脚本:不会,不想动脑筋(思路清晰,不想写。因为这题运行不起来,调试不起来,会报错,只能纯分析。看见的一瞬间就知道,是某种表以及某种加密。所以,我先看的字符串:>>>信息收集。跟踪sub_411940就好。所以,此时可以综合所有已知的。原创 2024-10-02 01:59:48 · 527 阅读 · 0 评论 -
buuctf---->[WUSTCTF2020]level3
认知:关于这base64具体的加密算法,懂得不是很多,如果不知道有没有进行魔改,可以提出来去C中跑一下就知道了。(其实更推荐动态,当然在能动态的情况。思路:常规做题,肯定首先需要想到 “表”的问题 其实是”算法“的问题。>>>这里能够证明,此时,还是属于常规的base64加密。置换表出来,在线工具或者用python库函数都可以。这表看起来,很正常,默认的为什么会加密不出来?一 能动态的情况下去动态获取修改后的表;猜测: 可能是哪里进行了魔改。仔细对比你会发现点毛病。得,表做了变换处理。原创 2024-10-01 16:27:43 · 299 阅读 · 0 评论 -
攻防世界---->crazy
tips:这题加载了混淆函数等 ida 反正我跳不过去,pwndbg我用的不是很熟悉。清晰可见,而且此后的[rbp+var_28],都是作为值传给其他指令,没有作为接收。还是先看v2,因为在ida中 我们已经确定了v2肯定是加密input的。题外话: 最开始我Tmi 以为我思路错了。疑问:你怎么确定,此前看到的那段数字+字母的组合就是密文?那就直接跟踪它,找到第一次引用的地方。先解决第一个问题 ——是不是输入的长度为32。## 最近在学渗透测试,每天只做一道题。所以,v4也是对于input的加密。原创 2024-09-30 18:44:30 · 324 阅读 · 0 评论 -
攻防世界---->happyctf
锁定地址 追踪看看。(此题,ida不能动态 od可以的。说白了,就是一个用于判断 flag ==key的。所以实际,是我们输入进行了xor。追踪 good job。原创 2024-09-28 14:01:56 · 426 阅读 · 0 评论 -
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 阅读 · 0 评论 -
ctf.show---->re2
切入点: 多次256 | %256 | ^当然,脚本也行(魔改的话,大可以在上面进行修改。提示:当时我做到这里,就以为丸辣 - -然后它把我enflag删了!那直接CyberChef就行了。大致一看,这就普通的RC4。逻辑很清晰,写脚本咯。原创 2024-09-25 20:18:24 · 353 阅读 · 0 评论 -
攻防世界---->key
前言: 会更reverse和web的,都会做。不过,web毕竟纯新手。要敏感函数的调用,给 call sub_CE20C0 下断点瞅瞅。main函数没有什么,就调用了函数和清零操作 我们跟进函数看看。可以看见,此时v9的值。因为我们试了赋值之后的去提交错了,,,可知,先进行异或 然后再次进行了一个循环+9的操作。所以,我们得先有这个文件,否则会退出,打印。我们反跟踪Block,看看哪儿引用了它。因为,v6的值来源于Block。得,会闪退,用WSL看看。试一试提交,赋值前的值。原创 2024-09-25 17:03:50 · 310 阅读 · 0 评论 -
攻防世界---> 简单检查-100
ida动态,发现,咱们输入的v8用v6的地址接收,且v8只是if判断,所以能够确定,flag在T时执行。前言: 额,不会 gdb 一直以为reverse不会用到gdb,pwn才会使用到gdb。因为照理来说,应该会打印flag的。程序是用eax去接收我们的输入,所以用gdb去修改eax的值(把0改成1)一开始思路,因为输入的v8是用于判断的,而它又是.exe文件。然后网上看了人家的wp———用Linux-gdb去调试。总结:reverse也要学 gdb ,,,(补习去了。所以用ollydbg进行调试。原创 2024-09-13 13:25:00 · 237 阅读 · 0 评论 -
攻防世界---->埃尔隆德32
因为首次值a2=0,已知,所以我们可以手动计算也可以用代码去获取a1打印的值。这里我选择动态查看其值。原创 2024-09-15 14:12:28 · 269 阅读 · 0 评论 -
攻防世界--->debug
reverse关于.NET的处理手段。原创 2024-09-19 21:36:43 · 617 阅读 · 0 评论 -
攻防世界--->re4-unvm-me
MD5 在線免費解密 MD5、SHA1、MySQL、NTLM、SHA256、SHA512、Wordpress、Bcrypt 的雜湊 (hashes.com)然后,,,我就问豆妈了(懒得去对应找。那么,关键点就是,对于md5的解密了。原创 2024-09-19 12:43:21 · 328 阅读 · 0 评论 -
攻防世界--->gametime
题外话:哦,程序结果还在,是因为我是在WSL—Debian上运行的。你还别说,真挺好用的,vm虚拟机能不能运行.exe我不知道。方便我进行ida——Linux远程的调试分析 以及 pwndbg的动态调试。main中很多东西,主要看if判断就可以了。可以参考这篇wp:(学到了ida和od的许多功能搭配、小技巧。汇编代码,一定要对 函数的调用 以及 jmp家族的指令格外注意。因为有意思,所以,,,打通关了。不过,咱们学习的是reverse技术。猜测其是,关键跳,影响程序走向的跳转。原理: JMP无条件跳转。原创 2024-09-20 20:59:28 · 612 阅读 · 0 评论 -
攻防世界--->hackme
总结:做题最重要的一步,是分析。原创 2024-09-17 17:04:23 · 328 阅读 · 0 评论 -
攻防世界---->ReverseMe-120
当时看见这种明文格式,心里有底,这flag可能是某种编码,然后再XOR 25得到的encode——明文。Base64编解码算法详解(附C/C++源码)_base64解码算法-优快云博客。加密算法识别,解密算法识别,都需要能掌握。base加密的识别,还算容易。不懂,查资料呗:(这次真正理解了base64加密)。(因为,此题,是用C/C++去写的,异曲同工之妙。那么,先XOR25() 再 对其进行编码操作即可。当然,前提是,表未魔改 或者 加密算法,未魔改。此题逆着来,通过明文,去求解密文flag。原创 2024-09-20 13:55:57 · 995 阅读 · 0 评论 -
攻防世界--->BABYRE
因为call不能用在.data段,call一般是用于call函数的。说明其judge很大程度是一个函数,而非数据。总结:自我感觉考查对于数据段的识别,以及对汇编命令的理解、以及处理手段。(一般是调用了某个函数。call基本就是用于函数调用)很奇怪是一段.data(数据段)【ptr-一般是常数/局部变量】【ptr+一般是参数】原创 2024-09-19 09:22:11 · 337 阅读 · 0 评论 -
攻防世界---->Windows_Reverse1(补)
decode 取值等于 byte_ [xxx] 是否说明了byte_ 是一张解密表?总结:最好自己分析,不要纠结表的数据,为什么不一样。以自己的hex数据为准。假设,我们不知道地址随机怎么办?不能动调,只能静态分析。我们对 byte_ [xxx] 进行hex跟踪。“ 表示为不可见字符。数据未显示时,可以尝试追踪hex内存。不明白可以反汇编和汇编一起看。重新打开,静态分析。原创 2024-09-21 21:06:59 · 311 阅读 · 0 评论 -
攻防世界--->EASYHOOK
(而且其地址很可疑。401000地址,这太熟悉了。经常作为32位老旧程序的入口点。发现我们的输入变成了另一种字符,并且还写了个文件。大胆 猜测,问题出现在 WriteFile 这里。对 WriteFile 进行溯源,查看其汇编代码。不过我少了个字符,但无伤大雅,直接添上就可以了。动调,第一遍,试试水:看看程序的状态。我们对,input进行追踪。进入main:(该改的该)那么,逆向回去就可以了。原创 2024-09-20 17:29:05 · 412 阅读 · 0 评论 -
攻防世界---->Windows_Reverse1
ASLR地址随机化处理。原创 2024-09-21 14:26:42 · 530 阅读 · 0 评论 -
攻防世界--->re2-cpp-是-awesome
直接ctrl+X进行跟踪。没事,对解题并不影响。原创 2024-09-14 15:33:38 · 200 阅读 · 0 评论 -
攻防世界---->流浪者
先通过密文,逆推密文在abcd_62的v5也就是index。一开始以为,,,base62 去解密 不对。动调一下发现,input不在这个函数里面。再通过恒等式逆推input。原创 2024-09-18 13:15:30 · 362 阅读 · 0 评论 -
攻防世界--->秘密-银河-300
适用于reverse的隐写术。(用的WSL->Debian)反汇编看不出来什么名堂,那就去看汇编代码。这是我们程序打印代码。SECRET 秘密。原创 2024-09-14 17:33:22 · 320 阅读 · 0 评论 -
攻防世界--->xxxorrr。
先将s1的值进行^2 + 65的操作。在和input进行xor。之后的值与s2进行比对。那么大概就是s1和input进行 XOR 然后得到s2。此时,可以大胆猜测,其实main函数并不是一开始就载入执行的函数。总结:思维逻辑很重要。也要相信自己,不要怀疑自己的能力。F9就好,(或者你想看程序逻辑就F7、F8)最开始,额,我写完运行就感觉不对劲。找到main:(该改名字的改名。因为我们主要是想到s1变化的值。shift+e提出来就好。我们对main进行跟踪。那此时程序逻辑很清晰了。原创 2024-09-20 09:38:14 · 522 阅读 · 0 评论 -
攻防世界--->crackme
32位手动脱壳,详细教程:X32dbg ---->crackme。原创 2024-09-19 19:37:43 · 453 阅读 · 0 评论 -
攻防世界--->tt3441810
总结:reverse方向的杂项吧,签到题。关键对应hex序列的处理。猜测flag,藏在其中。不过,这是一个text。看了一个wp挺好的。直接使用ida的hex功能。可以写脚本,也可以用winhex挨个挨个敲。那么直接提取出来,去010中进行分析。记录第一次遇见,以及处理方式。原创 2024-09-19 17:45:37 · 270 阅读 · 0 评论 -
攻防世界--->迷宫
其中,可以手动,也可以写脚本(利用DFS以及BFS)告知是一个8 * X = 64的迷宫(可得列数是8)④ 得到路径 --->看 ”11“① 这题直接给出了地图。且格式为 nctf{XXX}② 找方向键。③ 分析路径。④ 得到路径。② 找方向键。③ 分析路径。① 找地图。说明flag长度为 24。原创 2024-09-09 10:24:20 · 280 阅读 · 0 评论 -
攻防世界--->地穴
先得到与0x22异或前的数据。(flag_RC4_encode)此题,在RC4加密完后,与0x22进行异或与密文进行对比。一般解这种题,都可以在xor处下断点去,看看加密后的值。reverse中RC4关键点就是,抓住异或。在reverse中,RC4考点,不会很难。很容易得知,这是一个RC4加密。原创 2024-09-08 09:17:31 · 240 阅读 · 0 评论 -
攻防世界--->开源
下载之后是一个C的源码,用notepad打开就可以。原创 2024-09-08 13:41:46 · 206 阅读 · 0 评论 -
攻防世界--->
F8步过authenticate() 会有提示:(猜测关键代码在其中)没事,动调(学会很重要)原创 2024-09-08 17:21:07 · 208 阅读 · 0 评论 -
攻防世界--->神秘
大意就是: “ 123 ” = 123 ”ABC“ = 0(以前我以为直接就是把ASCII转成数字。大概就是输入password然后给你flag。这个有点意思(其实在划水。原创 2024-09-09 14:21:04 · 190 阅读 · 0 评论 -
攻防世界--->获取
根据程序逻辑,创建了一个新文件并且进行了写入。直接Linux上动调一下。原创 2024-09-08 16:43:19 · 177 阅读 · 0 评论 -
攻防世界_游戏
这种类型,属于输入正确会输出flag。对于这题,实际上来说,属于数学题。两种方式都可以输出flag。当然看汇编代码一眼穿。首先,运行一下程序。原创 2024-09-08 10:54:04 · 315 阅读 · 0 评论