3.1k 詞
程序本身不管是否附加调试器运行都只会输出hello world,text中有一段被塞入了长达200KB的nop指令,且系统函数貌似全都被替换成了不正常的函数名称。 经过观察发现了被塞入nop指令的函数行为很可疑,尝试不包含nop部分进行反编译发现不成功,仔细研究后发现是一个混淆系统函数verrx无法被ida正确理解导致其后的函数产生截断,重新反编译后认为地址0x55555556C597开始的函数是一个整体,一直到main的上方。 此外程序多次调用了一个字符串=>866>83>;).(;9?6.(;9?(;>;(?h(h并xor了0x5A,异或后发现是各种调试器的名称,因此这是一个基于名称查找的反调试,可以patch这个字符串进行反反调试。 main中的exit也是用于混淆的函数,实际并不会退出,更可靠的方式还是观察retn指令: 12345678910111213141516171819202122232425262728293031323334353637383940.text:00005555555AD6D8 sub_5555555AD6D8 proc...
2.5k 詞
很恶心的双重vm,通宵大概做了十个小时 main函数: 123456789101112131415161718192021222324252627282930313233343536373839404142434445__int64 __fastcall main(int a1, char **a2, char **a3){ __int64 v3; // rax __int64 v4; // rbp _BYTE *ptr; // rbx setbuf(stdin, 0); setbuf(stdout, 0); setbuf(stderr, 0); if ( a1 <= 1 ) { fprintf(stderr, "[E] usage: %s [path to .masm file]\n", *a2); return 2; } else { fwrite("[I] initializing multiarch emulator\n", 1u, 0x24u, ...
5.6k 詞
仅给出我个人解出的题目的WriteUp. Crypto方向:lcgp:n-1光滑,先恢复c: 1234567891011121314151617181920212223242526from math import gcdfrom Crypto.Util.number import *random_outputs = [ 112503273551129562847207199879439418254960748935518279728776167180745928621308069758892757454974265154055628877271170088188637288035498485748210670569974234436813478850270006324622419686408934713522001257484533960988542831371586092649446921293016173382336700025474709328513507508704786309553286537291764401421987792541173856570866157...
2.8k 詞
– 引子 –在今年年初的VNCTF 2025中,遇到了一个这样的题目(不知道是不是第一次遇到了,感觉以前也见过几次,但是最有印象的是这一次了): 123456789101112131415161718192021222324252627282930313233v1 = rand();byte_18000E1E0 = v1 + v1 / 255;v2 = rand();byte_18000E1F0 = v2 + v2 / 255;v3 = rand();byte_18000E1F2 = v3 + v3 / 255;v4 = rand();byte_18000E200 = v4 + v4 / 255;v5 = rand();byte_18000E204 = v5 + v5 / 255;v6 = rand();byte_18000E210 = v6 + v6 / 255;v7 = rand();byte_18000E950 = v7 + v7 / 255;v8 = rand();byte_18000E220 = v8 + v8 / 255;v9 = rand();byte_18000E...
3k 詞
easy_rc4:由于是rc4对称加密,所以先随便输入一些东西,再断点patch输入的内容为密文,即可自动解密得到flag:LitCTF{71bb2a06417a5306ba297ddcfce7b1b0}. easy_tea:程序在4148D0、414F90有花,去花得到TEA加密函数和主逻辑: 12345678910111213141516171819202122int __cdecl sub_4148D0(unsigned int *a1, _DWORD *a2){ int n4; // eax unsigned int v3; // [esp+D0h] [ebp-2Ch] unsigned int v4; // [esp+DCh] [ebp-20h] int n32; // [esp+E8h] [ebp-14h] int v6; // [esp+F4h] [ebp-8h] v6 = 0; v4 = *a1; v3 = a1[1]; for ( n32 = 0; n32 < 32; ++n32 ) { v6 += 0x114...
2.9k 詞
由于和京麒同天,优先打了京麒,但是把题都下下来了,比赛结束后自己做了一遍. 签个到:Part1部分所给出的是一个加密函数的字节码,写入一个文件后ida打开并解析,发现在64bit和32bit下均只有一个异或,奇偶位分别异或的是0x31和0x58,提取密文异或后得到flag的上半段iwannaknow,对于下半段进行解包: 123456789from secret import decryptkey = bytes.fromhex('EC3700DFCD4F364EC54B19C5E7E26DEF6A25087C4FCDF4F8507A40A9019E3B48BD70129D0141A5B8F089F280F4BE6CCD')ciphertext = b'\xd4z\'0L\x10\xca\x0b\x0b\xaa\x15\xbeK0"\xbf\xb2\xc6\x05'cipher = decrypt(ciphertext, key)a = bytes(input('flag呢'), encoding=&...
4k 詞
有很多脑洞题,想了很久最后还是牢出来了. 在这里仅给出一部分我个人解出的题目的WriteUp. Crypto:DIladila:爆破明文: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121#include <iostream>#include <vector>#include <cstdint>#include <thread>#include <mutex>#include <atomic>#include <array>#include &...
5.1k 詞
bash.ps1powershell脚本,变量名和函数名有混淆,去除混淆后查看: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061function Func { Funcb Funcd Funca Funcc Funce exit}function Funcb { if ([int](&(Get-Command /???/id) -u) -cne -not [bool][byte]){exit} if (-not ((&(Get-Command /???/?at) /etc/*release*) | grep noble)){exit} if ((&(Get-Command /???/?at) /sys/class/net/enp0s3/address) -c...
8k 詞
逆向压轴的brainfuck比较有意思. Misc方向:MiniForensicsⅠ:打开虚拟机,桌面上有一个全是坐标的txt和一个流量包,在此电脑 > 文档中找到一个隐藏文件夹nihao,其中有一个ai.rar和一个pwd.txt,提示密钥是7位纯数字,爆破得到密钥1846287,解压后发现给了一个没用的图片,并提示压缩包还有东西,发现有一个ssl.log被标记为了type03(服务块)而非02(文件块),改为02,重新计算CRC32得到40f42e68,小端序682ef440覆盖,发现已经可以识别出ssl.log,用这个作为SSLKEYLOGFILE解密流量,导出对象,得到两个upload,第一个是D盘的密钥521433-074470-317097-543499-149259-301488-189849-252032,第二个是一个zip压缩包,用密钥对D盘进行解密,发现D盘有一个透明贴图空白文字的文件夹,里面有一个c.txt,也是一串坐标,转为图像后发现是fakeflag,但是b是ac的平均值,求得a的坐标序列,转为图片得到flag:miniLCTF{forens1c5...
2.7k 詞
Re1:程序是用rust写的,还把符号表删了,先用bindiff恢复符号表,观察main函数: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518...
7.5k 詞
re出题人怎么这么喜欢矩阵,FPGA和deeptx都属于恢复出来逻辑不好逆的 ezFPGA:查了查FPGA的相关知识,先用Digital-IDE查看vcd信号: 提取密文:AD00C09F1617EC25251F12E27F9F375312BA8D3860141B318E13E2560A1A25B980738A60 从encryptor恢复加密逻辑: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116module Encryptor#( parameter logic [7:0] FLAG [0:13] = { "A&...
12k 詞
个人感觉reverse题目里面解数最少的index反而不是最阴间的,起码没有conforand阴间在这里仅给出我个人解出的题目的WriteUp. Crypto方向:费克特尔:直接上factordb分解n即可 12345678910from Crypto.Util.number import *c=670610235999012099846283721569059674725712804950807955010725968103642359765806n=810544624661213367964996895060815354972889892659483948276203088055391907479553e=65537n = 113 * 18251 * 2001511 * 214168842768662180574654641 * 916848439436544911290378588839845528581phin = 112 * 18250 * 2001510 * 214168842768662180574654640 * 9168484394365449112903785...
2.3k 詞
无意间发现还有决赛,积极参加了,题目依然很有意思 Misc方向:final_happy:jpg图片,查看作者名发现是一个base64:aV9sb3ZlX3Jvc2U=,得到i_love_rose,用steghide输入密钥提取得到flag.txt,发现是一个wav文件,文件头的RIFF少了前三个字母,补上之后发现是摩斯电码:– ….- –. .—- -.-. -… -.– - …– … .—- … - …. . .– ….- -.–,得到m4g1cbyt3s1sthew4y,则flag为flag{m4g1c_byt3s_1s_the_w4y}. 情书:先看flag.txt:****-/*—-/—-*/****-/****-/*—-/—**/*—-/****-/*—-/-****/***–/****-/*—-/—-*/**—/-****/**—/**—/***–/–***&#...
19k 詞
驱动题直到最后也是零解,之前腾讯也出了个驱动,看来该抽时间好好学学驱动相关了…本次比赛搞笑事件颇多(),包括但不限于:因为之前做了NPC²CTF的babyvm,所以ezvm不小心非预期了(出题人更换附件时和出题人聊天走神导致被抢一血(做EzObf的时候有点入迷了,没发现附件更新了,不过本来剩下的时间也不够了就是了( Crypto方向:reed:发现是仿射密码,flag的中间段在字符集中的索引(0~61)被使用c = (a * index + b) mod 19198111的方式进行仿射加密,其中ab为随机数,考虑一种情况:若a、b均为极小值,则a * index + b不足以被mod 19198111,连接靶机进行获取: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455import socketimport stringHOST = '8.147.132.32'PORT = 36002SEED = ...
6.7k 詞
经过了前几次的恶心vm之后,这次最后的go vm实在逆不动了,就没怎么看…在这里仅给出我个人解出的题目的WriteUp. Reverse方向:ezDOS:发现是8086架构的DOS程序,主函数中有几个花指令,抹掉后观察逻辑: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164...
2k 詞
比赛开始后十几分钟还没上题,差点以为比赛取消了前两题纯签到,后面两题有点意思,不过难度也是签到级别的 easyre:发现main函数反编译不出来,在前面有一大坨花指令: 123456789101112131415161718192021222324252627282930313233343536373839404142.text:00411DA8 xor eax, eax.text:00411DAA jz short loc_411DAF.text:00411DAA ; ---------------------------------------------------------------------------.text:00411DAC db 11h.text:00411DAD db 22h ; ".text:00411DAE db 33h ; 3.text:00411DAF ;...
31k 詞
自从newstar之后已经好久没见过持续时间这么长的比赛了,比赛还是有难度的,不过最后费了一些劲还是AK了所有的reverse、第二周的misc和crypto,题目都挺有意思的,学习和尝试了很多之前没接触到的内容. Crypto方向:river:由于是对称加密,直接将密文回带就可以得到明文,十六进制转换得到flag{two_dift3rs_0ff_t0_s33_th3_w0rld}. 全网呼叫密码人:如脚本所示: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849from Crypto.Util.number import *import gmpy2#第一部分:凯撒加密flag1 = bytearray(b"dj_ey//)")for i in range(len(flag1)): flag1[i] += 2#第二部分:维尼吉亚密码(在线求解,https://www.guballa.de/vigenere-solver,密码为c...
9.2k 詞
这比赛3.2就开始了,我们当时没有听说,3.6才知道的,不过最后还是取得了不错的成绩.在这里仅给出我个人解出的题目的WriteUp. Reverse方向:ASM?Signin!:编写解密脚本: 123456789101112131415161718192021222324252627282930313233343536373839404142data1 = [ 0x26, 0x27, 0x24, 0x25, 0x2A, 0x2B, 0x28, 0x00, 0x2E, 0x2F, 0x2C, 0x2D, 0x32, 0x33, 0x30, 0x00, 0x36, 0x37, 0x34, 0x35, 0x3A, 0x3B, 0x38, 0x39, 0x3E, 0x3F, 0x3C, 0x3D, 0x3F, 0x27, 0x34, 0x11]blocks = [data1[i*4:(i+1)*4] for i in range(8)]for i in range(8): si = i * 4 di = si + 4 if di >= 28...
12k 詞
一转眼已经到2025年了,其实2024年年末还参加了一些比赛(比如长城杯,DASCTF什么的),但是打的都不太好,怕丢人就不发wp了()2025,新年新的开始,望自己在新的一年能多AK少爆零() 赛题轮次:Week 1Crypto方向:suprimeRSA:这题貌似有两个版本,我是在第一个版本做的,看了一会没什么思路,再看公钥n只有六十多位,于是用了个耍赖的方法:(或许是因为纯按数学方法做这个题很困难,暴力破解反而拿下了一血)yafu暴力分解n得到p和q: 12P48 = 796688410951167236263039235508020180383351898113P48 = 839777194079410698093279448382785381699926556673 解密得到flag:hgame{ROCA_ROCK_and_ROll!}. Misc方向:Hakuya Want A Girl Friend:打开txt发现是每个字节的ASCII,010editor转成文件后发现了一个zip文件和一个所有字节全都倒过来的png文件,png文件的宽高不正确,修改宽高后得到zip文...
5.5k 詞
只做了reverse方向的题目。从2月3日HGAME CTF开始到2月8日的VNCTF再到2月9日的N1CTF Junior,长线作战使得此时已经有些乏力了,三道逆向题目中,第一道(easy-re)由于缺少root过的arm架构安卓手机,在艰难分析手撕ollvm后因发现关键值需要动态调试获取而望洋兴叹… Reverse方向:5mc:反编译观察main: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421...
7.7k 詞
第一次遇到鸿蒙软件逆向,简单学了学之后成功做出来了 签到题:欢迎!:打开容器发现是“文本替换器”,只能执行指定的指令:sed's/{.\*}/ text /g' path,并给出了一个示例文本文档,题目说明flag在环境变量内,首先在右侧路径的位置输入环境变量:/proc/self/environ,返回以下内容: 1RET2SHELL\_34\_656\_PORT=tcp://10.233.17.192:3000RET2SHELL\_34\_656\_SERVICE\_PORT=3000KUBERNETES\_SERVICE\_PORT=443KUBERNETES\_PORT=tcp://10.233.0.1:443RET2SHELL\_34\_388\_PORT=tcp://10.233.2.153:3000RET2SHELL\_34\_388\_SERVICE\_PORT=3000RET2SHELL\_34\_488\_SERVICE\_PORT=3000RET2SHELL\_34\_488\_PORT=tcp://10.233.29.73...
6.7k 詞
刚出新手村后正经打的第一场个人赛,单就re方向来说感觉难度还行?上传这篇wp到github时又看了看这些题目,发觉当时认为很困难的题目现在貌似都能迎刃而解了,成长和进步总是在不知不觉中就发生了… Reverse方向:babyre:反编译观察主函数: 12345678910111213141516171819202122232425262728293031__int64 __fastcall main(int a1, char **a2, char **a3){ __int64 v3; // rdx __int64 v4; // rdx char v6[32]; // [rsp+0h] [rbp-A0h] BYREF char v7[32]; // [rsp+20h] [rbp-80h] BYREF char v8[32]; // [rsp+40h] [rbp-60h] BYREF char v9[40]; // [rsp+60h] [rbp-40h] BYREF unsigned __int64 v10; // [rsp+88h] [rbp-18h] v...
738 詞
挺简单的两道题 EnterGame:反编译观察main函数: 1234567891011121314151617181920212223242526272829303132333435int __fastcall main(int argc, const char **argv, const char **envp){ int v3; // eax int v5[10]; // [rsp+8h] [rbp-138h] BYREF __int64 s2[2]; // [rsp+30h] [rbp-110h] BYREF __int64 v7[4]; // [rsp+40h] [rbp-100h] BYREF char s[112]; // [rsp+60h] [rbp-E0h] BYREF char s1[104]; // [rsp+D0h] [rbp-70h] BYREF unsigned __int64 v10; // [rsp+138h] [rbp-8h] v10 = __readfsqword(0x28u); puts("Welcome...
28k 詞
这是我第一次参加CTF,初来乍到,当时的许多专有名词的表述、题目做法放在现在看都是可笑的,就当做黑历史吧… 赛题轮次:Week1已解出的题目: 题目类型 题目名称 Pwn Real Login、Game、overwrite、gdb Reverse base64、ezAndroidStudy、Simple_encryption、ez_debug、begin Web headach3、会赢吗、智械危机 Crypto xor、Base、一眼秒了、Strange King Misc WhereIsFlag、Labyrinth、decompress、pleasingMusic、兑换码 Pwn方向:Real Login:反编译观察函数,发现要输入密码,找到密码是NewStar!!!,观察发现没有位数溢出保护机制,在虚拟机中nc地址后输入NewStar!!!+大量额外字符弹出祝贺,此时已经成功,用ls指令查看文件发现有一个flag,再用cat查看得到flag{6a532e27-a281-4c15-b965-c030de9c47df}. Game:反编译观察函数,发...