CTF比赛WP
文章平均质量分 83
Sciurdae
一只初入逆向的菜鸟,日常记录学习.
展开
-
ISCTF2023 Reverse方向 WP
那么根据简单的数学公式,我们可以知道phi 即 (p-1)(q-1) = (p+1)(q+1) - 2(p+q),以及n = p * q = (p+1)(q+1) - (p+q) - 1;但是其实现在也还有点疑惑,为什么TEA加密的时候的明文和key是相同的,解密的时候密文和key也可以相同,当时就是这里纠结不出来。这里拿 刚刚 TEA加密后的密文,先是异或,将得到的数据作为一个二维数组的索引,把当前位置的值设置为1,最后比较返回0。发现一小段花指令,去除后发现是一个TEA加密,但是目前不清楚是哪里的。原创 2023-12-14 09:17:14 · 1380 阅读 · 0 评论 -
极客大挑战2023 Reverse wp
上面就是check检查flag是否是table里的内容,再得到flag在table的索引,根据索引在number中找出对应值。作了一个点击后的处理方法,如果字符串长度超过24就清空,为0或者不足24就自动往后面补充"X",。全都是简单的jnz和jz互补跳转,将E8或者E9全部改为90就好,下面的有些数据转换成代码也是一样的操作。将sb,按照奇偶位分成了sb2和sb3。因为先前加密的时候用的是第一个和最后一个加密,所以解密的flag自己再手动调整下。魔改的TEA,第一次加密的v1,继续作为第二组的v0加密。原创 2023-12-05 11:44:33 · 1650 阅读 · 0 评论 -
NSSCTF靶场练习---HNCTF2022Week3&4部分wp
函数来获取DLL中某个导出函数的地址,在这里就是,加载Dll1.dll,来获取其中名为ttt的函数地址,之后将其保存在ProcAddress变量中。不过这题不用怎么过,直接动态调试就好,断点下载11行main函数处,之后看汇编,在第一处exit处要跳过。加载了一个名为Dll1.dll的动态链接库,这个函数会返回一个模块的句柄hModule。IDA64打开,发现就是一个TEA加密,然后用dododo函数对v6(key)做了加密。之后就一直F8,直到程序打印出新的key就好了。先查壳,无壳,64bit。原创 2023-12-05 10:39:29 · 1421 阅读 · 0 评论 -
HNCTF2022Week2 Reverse WP
主要逻辑将userName 做一个md5加密,之后取加密后的数据的奇数位,就是flag。因为没有,反调试以及其他乱七八糟的东西。32bit的程序,点击100000000次就可以得到flag。IDA打开,红色的地址,jz和jnz互补跳转,nop掉E9。64bit的ELF文件,OD当然打不开。做了一个换表的base64编码,找到密文解码一下。先每俩个字符互换位置,再做一个0x30的异或。定位过去后,看汇编,修改cmp或者jg。TEA加密,找到密文和key解密。IDA打开后,查找字符串。先查壳,64bit文件。原创 2023-12-01 10:05:55 · 1527 阅读 · 0 评论 -
HNCTF2022Week1 Reverse WP
给出了S[0],再依次异或。原创 2023-11-30 09:45:09 · 1325 阅读 · 2 评论 -
GDOUCTF2023-Reverse WP
可以解出俩条路径,用最短的,dddssssddwwwwddssddwwwwwwddddssaassddddwwwwddwwwwddd。加密的逻辑大概就是,明文的第一位和第二位进行XTEA加密,之后加密后的第二位继续和第三位XTEA,依次下去,逆向一下就好。用动态调试,输入uuuuuuuuuuuuuuuuuuu连续创建迷宫,把迷宫copy出来;用IDA打开另一个文件,找到这个函数,比对俩个函数,一个XTEA的加密,找到密文,提取出来。这里的v7是错误的,后面进行了修改。一个迷宫题,不过是三维迷宫。原创 2023-11-28 12:06:42 · 1370 阅读 · 0 评论 -
FSCTF2023-Reverse方向题解WP。学习贴
这里就是main函数,可以看到一个k,input是 m 对输入和k进行一个func1的操作,然后对得到的密文c做一个encode的操作,之后进行比较。func1 函数,题做多点就敏感了,这里就是rc4了。func1 函数将其转化为字符串,func2函数是base64编码,func3做了一点减法运算。code里面是操作码opcode,下面是三个指令操作,这里都给出了名字,不用自己辨别了。这里直接用动态调试,输入32个1,观察每次加密后的结果。值得注意的是func3,RC4的加密过程魔改了一部分,原创 2023-11-22 10:20:42 · 727 阅读 · 7 评论 -
HDCTF2023 - Reverse方向全WP
不像是花指令,那应该就是SMC了,本来想用动调的,但这里加了反调试,不知道怎么去除,结合前面得到的key,找修改的地方。俩处加密,第一处对一句话进行一个f(x,y)的加密,这里加密用到了俩个伪随机数。再结合flag 为 28 位,可以得到,“I want to play basketballI w”再结合flag 为 28 位,可以得到,“I want to play basketballI w”之后,选中有用的数据U未定义一下,再P创建函数,F5反编译,得到。一个01背包问题,动态规划,写个EXP解决。原创 2023-11-20 23:26:52 · 1080 阅读 · 0 评论 -
LitCTF2023 - Reverse方向 全WP
也可以使用uncompyle6,安装就是pip install uncompyle6 ,对py版本有要求,自行查询。flag长度为20,故根据md5爆破。需要先转换成十六进制,又因为数据在内存中是小端序存储,所以需要将十六进制前后颠倒一下,实际上,pyc文件的magic number是根据编译的python版本而变化的,下面都是对于游戏操作的一些设定,看from处有个check,可以,接下来去找ch。打开来,一个litctf,一串数据,一个memcmp比较。pyc文件,反编译一下就好,可以使用在线网站,原创 2023-11-18 21:09:56 · 901 阅读 · 0 评论 -
NewStarCTF2023 Reverse Week3---Let‘s Go Wp
程序打开后结合题目可以发现是 GO语言。在GO语言中,main_init 要先于 main 函数运行。在这里对一个iv做了处理。用插件Signsrch发现AES加密知道是AES后,就需要找密文,key和iv了。密文应该就是前面的十六进制字符串。key和iv需要在函数前下断点动调key和iv都是NewStar!NewStar!但是需要注意的是,最初提到的iv做了初始化处理。要再异或回去。得到: |WEaFS@\x13|WEaFS@\x13。原创 2023-11-17 10:51:46 · 336 阅读 · 0 评论 -
NewStarCTF2023 Week3 Reverse方向 题目STL WP
因为0x66的ascii是f,结合要做的逆序,0x66应该是在最后一位。再将数据换成16进制,并分割成44的长度。所以再对分割出的每四位做一个逆序。代码不多,逻辑挺清楚的。这里手动调整了一下顺序。这样就可以开始异或了。原创 2023-11-16 14:10:59 · 276 阅读 · 0 评论 -
NewStarCTF2023 Week3 Reverse 花 wp
其实已经出结果了,Str是key,enc里面是密文,用了一个RC4加密。这里就是最终的加密部分了,去除花指令后也可以看到没有魔改的部分。这是RC4加密的一部分 创建了俩个S盒,还做了swap的操作。去除花指令也是一样的,E8改为90 (nop)往下拖,就一个jz和jnz互补跳转的花指令。将E8改为90,修复为代码,再P一下反编译。原创 2023-11-16 13:56:20 · 196 阅读 · 0 评论 -
SHCTF2023 山河CTF Reverse Week3 --- ststst & easyre WP详解
这个函数接受一个代码对象(通常是由字符串形式的代码或者编译后的字节码构建而成),并执行其中的 Python 语句exec 是 Python 中的一个内置函数,用于执行动态生成的 Python 代码。上面俩个填写linux上的文件路径,第三个是文件夹,然后还有虚拟机的ip地址,可以用ifconfig查看。之后再用C改为代码,要用force强制处理,之后就是用p创建函数,再反编译。粗略看了就是一个rc4的加密,rc4加密是对称的,因此我们继续将key和check值解密就好。用U全部Undefine一下,原创 2023-10-30 18:11:25 · 517 阅读 · 0 评论 -
SHCTF2023 山河CTF Reverse方向week2全WP【详解】
这里为什么呢,因为这里关于迷宫的数据放在数组里,是以一维数组的形式出现的,如果将一维数组分为 8 * 8的 二维数组 那 -8和+8不就是向上或向下移动 , 如果再将 8 * 8扩展到 8 * 8 * 8 的地步, 那么加 64也就是到下一个 迷宫去了。的时候用的这道题的附件,交了好久的flag一直是错误的,当时真的一点自己做过这题的记忆都没有 奇怪。sudu函数里面的内容,是一个 9 * 9 的数独表,大致意思是如果map索引位置为真,我们的输入就是0,如果为假的话,就将我们的数字填入。原创 2023-10-29 20:15:00 · 924 阅读 · 0 评论 -
记 : CTF2023羊城杯 - Reverse 方向 Blast 题目复现and学习记录
羊城杯题目复现:第一题 知识点 :DES算法 :链接:Ez加密器第二题 知识点 :动态调试 :链接:CSGO这一题的查缺补漏:虚假控制流的去除(还没学习);链接:MD5加密算法原理python 字典的使用刚学点。原创 2023-10-27 00:34:32 · 529 阅读 · 1 评论 -
记 :2023CTF羊城杯-Reverse方向 CSGO ‘ ‘ 题目复现
第二题,菜鸟入门。当初打都没写出来,现在复现一下;上一题Ez加密器。原创 2023-10-26 11:14:43 · 339 阅读 · 0 评论 -
记:2023羊城杯-Ez加密器-题目复现和学习记录““
前段时间的比赛,那会刚入门o(╥﹏╥)o都不会写,现在复现一下。羊城杯题目复现:第二题 知识点 :动态调试 :CSGO。原创 2023-10-25 20:19:39 · 315 阅读 · 0 评论 -
MoeCTF_2023新生赛 Reverse题解WP【详解】-(学习记录)‘‘
MoeCTF是我学习Re以来接触的第一个比赛!举办的很nice!(づ ̄3 ̄)づ╭❤~明年看看有没有时间,akakak要ak一次才完整a!Github仓库题目下载还差几题,有空补上,还需努力。原创 2023-10-21 17:38:49 · 1655 阅读 · 0 评论 -
SHCTF2023 山河CTF Reverse方向[Week1]全WP 详解
还有一种判断方法,base58的特征:相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号,最主要的是后面不会出现’='。逻辑很清晰,随机数生成存到v5里面,与输入的v6依次异或,然后和des比较;这里获取我们的输入,也就是input_1控件的内容,然后用“encrypt.encode”方法对其进行编码,将结果存储进s中,最后和字符串“ ”比较,相等就输出flag正确;再做一下处理,因为这里可以发现66是f,6c是l,61是a;原创 2023-10-29 20:00:00 · 847 阅读 · 0 评论 -
BUUCTF NewStarCTF 2023 Week2 Reverse方向wp
忘记说了,这道题是SMC,也就是动态自修改代码,主函数第七行的VirtualProtect就是授予内存写权限,再用一些加密对内存进行改写,因为会在程序运行的时候进行自解密,所以不会影响程序的正常运行;第二个for 就是,我们的输入作为v6的索引,将得到的值存入a1中,最后返回,a1和&unk_4020比较,也就是说unk_4020的值在v6中的索引,就是我们要的flag。逻辑很简单,逆向就是,用403020的值-5^0x11就好,点击4033D4就知道那里放到其实是我们的输入;成功就是flag的;原创 2023-10-20 21:32:50 · 1054 阅读 · 0 评论