- 博客(58)
- 收藏
- 关注
原创 CrackMe 002
这个题,我们也是借助了原创作者的一些小思路这个主要还是考察我们的汇编能力,如果我们的汇编不行的话,还是要多加练习。所以我们在做这个题的时候不要畏手畏脚,放开手去做,不要害怕错误,逆向就是在错误中吸取经验的。
2025-05-22 16:56:54
1076
原创 [网鼎杯 2022 青龙组]fakeshell
但是我们还要认清楚,我当时就吃了这个亏了,这个a1到底代表什么,我们需要仔细看清楚,不要看错了。进入这个函数之后我们发现,就是这个byte_14001D330这个数组来跟我们的加密数据来进行比较,我们直接提取出来。将此处,我们改成UPX我们在解包就可以了。但是当我们用upxunpack解包的时候我们解不出来。里面又嵌套两个函数,我就不一一截图了,你们自己点进去看。之后我们成功得到未加密的文件,我们IDA打开。然后我们打开010eider,修改他的魔改。关键函数,我们直接写解密代码就好了。
2025-04-12 22:27:50
313
原创 (64)[HNCTF 2022 Week1]Little Endian
因为他是4字节,肯定会因为小端序排列,使用我们需要使用位运算来搞对我们的输出。然后我们根据伪代码写出异或过程。这些代码大家应该基本都看的懂。然后我们直接提取enc。
2025-03-16 14:14:17
213
原创 (63)[CISCN 2022 东北]easycpp
主要是这三句话,当我去提取Buf2的数据时,我们发现我们根本提取不出来。当我们执行这个程序它肯定是有数据的,我们可以对它按X去查看数据来源,也可以直接动调获得数据。这个题,我们先IDA打开,进行一波正常的流程操作。我们一步步分析就知道只有其中的三个步骤在发挥作业。可能你们刚打开,会被这些代码所震惊。它定义的很多数据都是重复在使用。然后我们直接写解密脚本。然后我们看这个伪代码。
2025-03-15 16:25:21
288
原创 (62)[BJDCTF 2020]encode (目前写过最长的博客,还有一部分省略)
所以懂我意思,我们在动调的时候改一下我传入的参数,改成密文,我们就可以倒转,的到解密数据,不用去写解密脚本了。还有,根据观察,前面的flag....是我们的key只不过放在同一地址里面了,放的位置不同,类似于我们知道的那种malloc这中自己分配的内存。从FF91653C这个地方开始,就是我们要传入的数据,所以我们将密文,改进去,写个脚本。以下就是我们的加密数据,让我们提取出来,一定要提取对,多少个数据。前面,我们根据函数,我们也知道前面是关于base64的换表加密,在这里下断点,然后我们动调。
2025-03-15 10:18:06
303
原创 (61)[HNCTF 2022 WEEK2]TTTTTTTTTea
等等,他们都是我们加密后的enc,所以我们可以写出来脚本根据一下函数内容。所以接下来我们需要知道key,而下面的v4[0---]其中v4,我们不知道,我写了一个c语言脚本来获得的值。然后再tea_这个加密函数里面,我们可以获得key。而且tea加密一般是需要两个32位的数据来进行。而flag是我们输入v4[8]后面的。我们可以看到,v4是关键数据。然后我们直接呈现脚本。
2025-03-14 13:15:35
270
原创 (60)[HNCTF 2022 WEEK2]来解个方程
(60)[HNCTF 2022 WEEK2]来解个方程。这个打开就是z3题,我们直接写好程序就可以。
2025-03-13 18:28:33
357
原创 (59)[羊城杯 2020]login
然后这是解密代码,关于z3我还是使用的不熟练,还是查了好久,关于哈希这个我也是不太熟练,还得练,还有上面关于z3创建对象,我也实在不知道怎么创建更好,只能这样创建,上面我想创建别的,但是,都不太行。我们使用之前的解包直接exe转pyc,然后pyc转py。我们可以看到好多,这下面的条件也是一个解方程的条件。我们一看是一个python文件。那我们需要进行我们正常的步骤。
2025-03-13 17:49:07
668
原创 (58)[GHCTF 2024 新生赛]Ez_asm
这个是我第一次自己做出了的asm有点小激动。第二步和第三步,看我的脚本就理解了。这个题里面有三层加密。
2025-03-09 20:44:42
239
原创 (56)[HDCTF 2023]easy_asm
就是与0x10异或,然后下面有一段没使用过的字符串。这个题,就是关于汇编语言的。我在这个汇编语言里面看到。所以我就这样试了一下。
2025-03-09 16:25:55
172
原创 (54)[GDOUCTF 2023]Tea
我们知道我们电脑基本都是小端序,当我用我注释的这几行错误代码,我们将enc转化为一个char*类型,原本是4字节,char之后是一字节,便于我们去转换字符。然后我这里错在这里。我们接着往后看step2,我们发现后面就没有用到v11,并且我们进入函数,这个函数也是一个没起到作用的函数。// 当前块内的偏移。我们发现这个题里面有好多函数,说明这个题没有我们想的那么简单,不仅仅是一个加密哦。当我们强制转换类型之后,enc是小端存储,他原本的首地址,存储的。// // 计算当前字节所在的大端序位置。
2025-03-08 09:56:26
773
原创 (53)[WUSTCTF 2020]level1
我们看到代码核心是下面的for循环,然后在这个循环里面,我们知道他没有改的是prt[0]这个元素。所以我们需要我们在写的代码中还需要顾及这个元素0。这个题跟我们之前见到的不一样,这个里面的代码是。
2025-03-08 09:55:53
124
原创 (52)[HGAME 2023 week1]encode
我们点开发现这个dword_40300这个进去之后应该是100个数据哇,可是IDA呈现好多,这些0我们就需要去掉。#flag+=chr(int(flag_h,2)+int(flag_l,2)) 这部分可以和上面是一样的作用。网上写的解法跟我不一样,反正能做出来就行了,这个题网上的wp也比较少吧,好像,反正我见了好几个人都写的一样的wp。以上这个关于正确的enc,有好多帖子他们都没有说怎么求,所以我就写了,他们简直太不负责了嘿嘿嘿。我们可以发现这就是一个加密,然后判断的程序。所以我们要提取加密后的东西。
2025-03-06 18:02:06
499
原创 (51)[GWCTF 2019]pyre
这个数学算法我不太会,我也遇见好多次了。所以这个东西我还是很推荐用人家的。以上我用的爆破写法,但是网上人家都用的模运算怎么说嘞,他们那个肯定更方便。注意:用爆破这个方法之后我们得到的最后一位是一个>我们把这个改一下。哎,不是为什么还是这个答案,可能我上面的code最后一位不对着。我们知道了这些个加密,就很容易就可以写出来了,这都是基本的加密。然后我们得到123.py这个文件。这个题的基础解法,我们得到pyc文件。模运算方法呢,是这样写的。
2025-03-06 16:52:32
226
原创 (50)[HGAME 2023 week2]before_main
很显然这个是自定义映射base64.然后我们代入我们之前写的base64自定义映射代码。我们对这个qword_4020按x,看看谁还引用了它,然后我们就可以看到。我们进入那个sub_12EB然后我们发现这个就是base64加密。我们发现运行错误,说明我们这个自定义的base64编码有问题。我们发现这个值总中途被更改了,那么我们用这个就解出来了。
2025-03-05 23:21:42
363
原创 (49)[广东省大学生攻防大赛 2022]pyre
我们同样和之前一样,使用 python pyinstxtractor.py XXX.EXE。然后解包后我使用010Editor,然后我们将他们前缀加上struct文件前16个字节。uncompyle6 -o 123.py xxx.pyc转换成py。先这是一个python,那我们需要先将exe-》pyc-》py。然后我们就可以获得一个py文件。
2025-03-04 12:18:08
125
原创 (48)[MoeCTF 2022]Base
nss:3319这个里面,我们知道base64_decode里面是解密,用来解密所以我们进入具体看一下是具体的base64的解密。我们可以从base64char得到码标然后我们自定义映射。当然这个题我们可以动态调试得到最后的加密。
2025-03-04 11:46:40
149
原创 (47)[NSSRound#3 Team]jump_by_jump_revenge
ebp-40h]被赋值0,然后eax被赋值 [ebp-40h],然后 [ebp-40h]的值加一( [ebp-40h]:1),在后面,我们发现cmp比较1D明显1小于1D。所以我们肯定会执行下面的jnz。然后我们直接nop那个红的就好。然后从头按p直接重新结构就获得我们要的伪代码了。进入这个之后,我们发现我们f5不能进行,那就说明有花指令,我们看看。说实话,看到求余,我都要爆炸了!每次想爆破都想好久还不对。经过网上一个教学,我知道这个爆破怎么写了。全是爆红,而下面有一个爆红的。
2025-03-03 20:47:24
282
原创 (45)[WUSTCTF 2020]level3
v1=''translate_base64=str.maketrans(custom_base64,standard_base64) #参数是两个字符串:custom_base64 和 standard_base64,表示将 custom_base64 中的字符映射到 standard_base64 中的对应字符。。
2025-03-02 20:02:49
740
原创 (44)[羊城杯 2020]easyre
这个题,跟我之前学长发的题简直一模一样,大家可以看我之前写的博客。这个题的脚本我也重新写了一遍,相当于复习,我也发布一下。
2025-03-02 14:25:52
332
原创 逆向题(42)nss:1860
首先是将ax清零,然后从数据段中拿出数据,向左偏移4,压入栈中,再清零ax,再从数据段中拿出数据,再向右偏移4,将栈中的数据拿出给bx,ax+bx,再拿ax与 (十六进制的17)23进行异或,最后的数据拿来和额外段的数据比较。(这里注意,只拿了一个数据,并不是全部)4。这个题我们需要用来观察汇编语言逐个分析吧。
2025-03-02 11:58:45
803
原创 逆向题(40)nss:3323
记住,这里有个坑,他把a2的长度减一说明循环少了一个次,所以我们写代码要从36为开始倒着写。然后我们直接观看后面的函数,我们看出来这应该是一个对比函数,我们直接提取后面那个字符。那么我们现在需要求的就是v4这个的加密过程,然后反过来,我们就可以解决掉这个题了。这个需要我们来去除花指令,基于常见花指令,我们直接就可以去除了。这函数里面就是取地址然后,一位一位的去比较,就是偏移。以下是第一个加密的内容,这个我也想了半天才解决。最后这是我们的源代码。
2025-02-18 17:41:10
926
原创 逆向(32)nss:2653
用法 upx.exe -d p04.exe。这个需要脱壳upx,用学长之前给我的软件。脱壳之后就是个简单的异或。然后我们直接写代码就好了。
2025-02-18 17:39:54
843
原创 逆向题(30)nss;2903
码表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/码表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/我们发现我们的flag再输入进来被更改了,所以接下来需要我写代码来重复。我们发现这个enc是经过base64编码过的,然后我们需要再解一次。答案:NSSCTF{B@se64_HAHAHA}运行即可得到我们的flag。这并不是我要的flag。
2025-02-18 17:38:42
775
原创 逆向题(29)nss:3864
我们在base64里面的函数可以知道里面有个basechange,是用来改表的,然后我们将里面的代码,用c语言复刻出来,我们可以得打之后的码表。我已经把base64忘得差不多了,这个题基本思路我大概知道。
2025-02-18 17:38:08
1238
原创 逆向题(28)nss:2041
关于这个题说实话,如果我不去上网去查,如果纯靠自己找的话有可能还找不到这个flag,其实他很简单。但是我看不懂他的伪代码,因为他是c++语言使用了std::我有点蒙就是这个<iostream>这个东西我看不懂代码,但是上网查了其实跟代码也没啥关系,他就是把flag藏起来了。
2025-02-18 17:36:49
776
原创 逆向题(26)nss:2042
根本没必要,还把自己的思路全给打乱了。本来很简单的一个题,硬是给自己整成了世界难题,其实没有必要。但是seed这个种子,因为我们是windos系统,而这个程序是liux的里面的。在这里面的srand之前我们在python遇到过,所以不知道可以在网上在查查。当我们看到这些这么长的伪代码的时候,其实我们没必要去一个个去细究。所以生成的种子数不一样吧,所以我们需要在虚拟机里面来运行。例如我,刚开始做这个题的时候,我就从头看到尾。我们就按着这个直接写,就可以得到我们想要的。这些及好理解,也容易写出来程序。
2025-02-18 17:36:03
759
原创 逆向题(25):nss3327
这个源文件打开不知道为什么会出错,甚至都运行不了,所以我在在线网站上上传了源码,获得了一个正常的源码。以上是错误的源码,以下是正常的,所以如果大家在解这个题有问题的时候,可以去看。这个题的文档里面告诉我们了当我们输入正确的flag加密后会输出以上的结果,那我们意思是需要去解密。那现在我们来搞一下吧。
2024-12-02 16:53:18
548
原创 逆向题(24)nss:3860
LitCTF{XOR_1s_3asy_to_OR}记住别忘了改一下前缀,是nssctf。为了防止像上一题(23)出现我们的空间给不够,我们这次索性不给利用strlen函数。我们进入xor函数看一下怎么异或的。
2024-11-21 19:46:38
212
原创 逆向题(23):nss:2956(花指令)
E9是jmp指令对应的机器码,当反汇编器读取到E9时,接着会往下读取四个字节的数据作为跳转地址的偏移,所以才会看到错误的汇编代码。因此,如果你初始化一个字符数组来存储字符串,你必须确保数组大小足够大,包括结尾的。)时,给定的字符串常量长度超过了数组的大小,或者数组的大小没有考虑到字符串的结束符(我们学学长那样,先分解成数据,然后一步步从上往下按c去做,看看最后还会不会报错,flag被加密两次,第一次是转换,第二次是异或,我们需要先异或,然后再转换。以下是我改后的,便于理解,接下来就是照猫画虎。
2024-11-21 19:33:44
419
原创 逆向题(22):nss:880(花指令)
我们之前按d拆开,现在然后按c让他重新变成汇编。所以我们不可能一个个去删掉,按照那个代码来写。答案就在里面,我们找找就出来了。我们可以看到好多这个0EB。
2024-11-19 17:57:14
140
原创 逆向题(21):nss:407
关于这道题,我是终于靠着自己一步步分析做出来了,可能对别人来说很简单的一道题,但是之前做的题,我第一次接触肯定不太会,也是会在网上查相关的解题方法,但随着一步步进步,我也可以慢慢分析,并且做出来。那我们如果逆推过来求flag,我们肯定需要知道这个random,这也就是我上面两张图的解释。:这里我突然想到n为什么是5,忘记说了,我们在第一个题目中可以看见,我们的flag是20个字符,我也标清楚了。然后在下面这个嵌套循环中,外层循环i是4(l的长度是4),然后内层中。这是一个关于算法的题,
2024-11-19 16:28:58
271
原创 逆向题(20):nss2902
IDA打开,我们主函数里面没内容,那我们直接字符串查看,发现有个flag的字符串,那我们现在直接进入这个字符串内部,它里面是有一个函数。str1我们可以看到是我们输入的flag,然后我们再看一下str2。这段代码,o变成0了所以答案就很显然易见了。:下面这个实际中没有用到,我只是分析一下。我们直接ctrl+x进入这个函数内。v5等于str2的字符串长度。接下来我们分析一下代码。
2024-11-19 16:27:30
214
原创 逆向启程(4):第四周培训
程序加载到虚拟内存中的地址。IMAGEBase:可执行文件的基地址,即它加载到内存时的起始地址。:相对于IMAGEBase的偏移量,用于指示文件或模块中数据的位置。:文件中的物理地址或偏移,表示文件数据的实际位置。
2024-11-19 16:26:14
1241
原创 逆向题(19)nss:3778
打开func,我们发现这是一个base64编码函数,查壳后是upx壳,我们直接脱壳试一下。成功解壳后,我们IDA打开。
2024-11-14 14:39:09
159
原创 逆向题(14)nss:404
oh~~shit我们在之前做过这种类型的题,RC4,在线网站一解ok,我试试看看行不行不对....那我们认真看代码吧。
2024-11-12 21:45:06
1853
原创 逆向题(18)nss:405 (理解新思路)
这是我写的,但是不对,怎么说呢,这个东西吧第一次接触,我也确实不行。思路到现在已经全乱了,我也写不出来,我的思路,即使写出来,可能也是错的,这个题,我们可以去看一下。这个大佬的解题方法,真的很强,我也是第一次知道怎么用爆破来破解这个算法,算是涨知识了。关于这个题吧....我自己想了好久,因为第一次接触这种自己写脚本来解密的题,每个字母除以17不会超过,因为578才会超过34。我们经过这个题,可以了解到这么多,这也是进步。
2024-11-12 20:27:53
328
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人