自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 [2019红帽杯]xx

main函数一大串,只能一点点慢慢分析。2.取前四位扩展作为XXTEA加密密钥。这个异或太多变量了,不好分析。4.将加密后字符串打乱顺序。然后就是XXTEA的解密了。1.用户输入19位字符串。6.与存储数据进行对比。

2024-05-21 16:36:36 154

原创 CTF_RE周报(四)

嗯,都搞了一些感觉很高端的东西。

2024-05-20 12:25:36 127

原创 RE_Python专题

if(len(s)!='N'):exit(0)")exit(0)")# 也可以通过爆破flag='N'看看能不能用pwntools爆破,但那是对可执行文件的爆破。

2024-05-20 12:03:16 654

原创 [长城杯 2021 政企组]魔鬼凯撒的RC4茶室

魔鬼凯撒请小明去RC4茶室喝茶,但是凯撒不在。小明需要用账号表明身份,但是他健忘,需要你帮助他验明身份,同时需要你帮助他解密出他的支付密码。嗯,密文应该就是在flag片段的flag中,确实也没看到key的信息。我不知道他从哪里提取的数据,还有个大佬直接爆破的。发现了 RC4 , TEA , 凯撒 加密。看了wp:好像这几个加密不重要,直接动调。也执行了啊,不知道为什么不重要。穷举得到异或的字节为0xde。

2024-05-18 21:55:45 106

原创 Android逆向专题

passwd:主要是AES/CBC加密。是先转字符然后base58.

2024-05-17 21:19:06 175

原创 RE_调试专项训练

再把这个值记下即可。尝试两次发现一样,所以是伪随机,直接从被比较的文本减去这个值即可。rand()那跟了一下,只有9次好像,不知道哪里出问题,应该是29个数。卡那里了,先不 patch 试试,动调时候再改。但我理解的是只有那种有随机数种子才是伪随机。程序中出现不确定的数字怎么办呢?),然后再写脚本,判断每个值偏移了多少。眼见不一定为真,就像你看到的密钥。可以通过先输入一段已知字符(如。可能是因为取模和默认种子数。字符串窗口寻找,就是v3。

2024-05-16 23:03:58 100

原创 [QCTF2018]Xman-babymips

移位完最好加上 &0xff。简单移位加异或操作。

2024-05-16 20:20:45 88

原创 【无标题】

考虑用VBS的 eval 函数,直接获得表达式的运行结果,将以下脚本保存为。用 wscript 或者 csctipt 运行。要求输入key,通过测试可以发现key的长度为6。解题的方法有多,qiling就是其中之一。解混淆可以考虑正则表达式,但我觉得太麻烦。听说你是VBS糕手,来van一下吧。

2024-05-16 19:17:46 132

原创 H&NCTF_RE复现(二)

至于这种方法不知道去哪里找。找到smc所在位置,再找到解密函数。之前没看到下面的,搞了半天。一眼凯撒加密,偏移量为10.

2024-05-16 18:56:48 202

原创 H&NCTF_RE复现(一)

利用pickletools库进行反编译为字节码(不知道为什么)之前NSS上也是有一道给python字节码的题目,只能手撕了。没有技巧,全靠手撕,对着opcode文档直接开撕。网页打不开,只能 nc 连接远程服务器。是个大工程,先贴一下别人的复原。pickle的调试器。

2024-05-16 13:52:51 312 1

原创 [MRCTF2020]PixelShooter

没有什么关键信息,但找到了一个unity类,想到apk也可以解压缩得到 .so 或者 Assembly-CSharp.dll。文件路径时包含特殊字符或不允许的字符,例如空格、特殊符号等。Assembly-CSharp.dll可以放进ida中。string里为空,也不能ctrl+f,这是自己翻的。我的jeb好像有点问题,不能直接打开这个文件。re手肯定不会去玩游戏,先jadx分析一波。后面知道ida还有文本搜索功能。故又在dnspy分析一下。

2024-05-14 23:09:19 256

原创 RE_EXE(C#)

利用revealedCells作为种子,让array产生一个随机数组,之后将array和array2的值进行异或运算,输出运算后的结果,猜测是flag。创建windwos窗体,MineField是雷区的封装,是游戏的核心组建;并控制玩家的基本操作以及正确的响应。感觉NET,unity游戏都是搞清楚各个函数的行为,影响,然后自己修改就行了。revealedCells是一个数组,里面存放的应该是我们点击方块的坐标。哦,dnspy打开先分析了一下,直接秒了。就是连接器好像有问题,也没找到什么信息。

2024-05-14 13:00:19 318

原创 [FlareOn1]Bob Doge

没什么思路,原exe文件运行又install了一个challenge1.exe文件。不太会用dnspy,不知道dat_secret里的值哪里来的就直接动调看里面的值了。得到的 flag 请包上 flag{} 提交。也可以使用.net re 工具去反编译。c#写的,没找到什么关键信息。搜索一下“decode”先把三个text打印出来看看。试一下,text1对了。密码:malware。

2024-05-14 11:04:56 126

原创 buu的firmware

网管小张审计日志时发现疑似黑客使用Bash漏洞对公司的路由器进行了攻击,小张通过技术手段获取到了路由器固件dump文件,但是小张不懂逆向分析,请帮助小张分析出后门程序所使用的远程服务器和端口.(flag文件在/home/ctf/flag.txt文件中,Flag形式为 md5(网址:端口)},注意网址不包含http比如:md5(所有压缩的节点长度平均在8个字节左右.(具体的长度根据文件的类型是不同的. 比如, 普通文件,目录,符号链接,块设备和字符设备的节点的大小就不一样)。烦,工具一直报错,先不搞了。

2024-05-14 09:10:41 873

原创 [ACTF新生赛2020]SoulLike

ida /ctg目录下的hexrays.cfg文件中的MAX_FUNCSIZE=64 改为 MAX_FUNCSIZE=1024。也是copy了一个脚本,简单去写了一下。我是也在kali里运行的。

2024-05-13 22:56:27 327

原创 [GWCTF 2019]re3

或者是由于编译器某些原因会把某些代码分出来,不存放在连续区域,而是在其他位置,这些块有时ida能识别出来,被称为chunk,有些不能识别,此时就得自己手动设置。如果是后者,那就通过append_func_tail来将目标区域添加到本函数中,另外,得先undefine目标区域。所以应该就是base表两次md5加密得到unk_603170作为AES密钥,我们的输入是明文,加密后和byte比较。总的来说,re题不太需要搞清楚每一步都在干什么,每个语句都是什么意思,搞清楚整体逻辑,就行了。

2024-05-13 16:26:05 311

原创 CTF_RE周报(三)

主要是复现XY的题目,嗯,这周刷题也感觉到了一点问题:不能太依赖wp了,但是后面的题目额也确实不看wp都不知道怎么下手有的,还是需要控制好那个度。

2024-05-06 20:43:13 370

原创 [Zer0pts2020]easy strcmp

main函数里什么都没有,想起来之前一个题elf会先运行init函数。给的数据以小端序存储,不过shift+e时候不需要考虑。python好像不好处理溢出的问题,再看看。会是上一字节溢出的给了下一位。

2024-05-06 11:44:41 188 1

原创 [2019红帽杯]childRE

我传入的v14=“abcdefghijklmnopqrstuvwxyz12345”,第一次的时候它给name[0]赋值成了p,对应我输入的字符串的下标是15,我调试了多次,发现每次都是这样,而且最后的name里存放的是打乱了顺序的输入的字符串,动调它给name赋值的过程,记录下对应的下标。动态调试会发现,开辟的地址处有三个数据,第一个是我们输入的字符,第二个是左孩子的地址,第三个是右孩子的地址。输入长度31的字符串---进行置换运算---取消修饰函数名---将未修饰函数名的商和余数与字符串比较。

2024-05-06 11:15:21 901

原创 BUU的XXOR

然后就是逆那个xxtea了。

2024-05-05 23:21:19 208 1

原创 buu相册

010分析是一个rar文件,7z打开发现是一个apk文件。base解密完是一个邮箱,提交对了。然后就是查看引用与出处。但没发现什么敏感信息。

2024-05-05 21:31:53 220

原创 NSS_RE

然后向下找到aes加密的函数aesEncrypt(key, 0x10u, v10, (uint8_t *)ct, 0x20u);,双击跟进,在for ( j = 1;strcpy((char *)key, “1234567890123456”)此处可知加密的key,并知道其长度为16位,根据AES加密的特征可以计算循环加密轮次,16X8=128比特,即10轮。还有断点(停止和跟踪(内嵌脚本,可以跟踪寄存器或某个变量值变化))加了一个反调试函数,但不影响直接异或回去就行了。发现是一个简单tea加密。

2024-05-05 17:09:36 554

原创 [SWPU 2019]ReverseMe

第二个循环是将我们的输入([ecx+edi])与al("SWPU_2019_CTF")异或,异或后结果存储在ecx中,得到ecx=[第一个循环说是strcpy(al,"SWPU_2019_CTF")单步进opera3函数,但不知道都调到哪去了。异或 --> 最后与 eax 进行比较。程序运行思路就是:输入 --> 与。啊,还是感觉有点懵,不太懂得怎么看的。但是好像也没有对edx操作的地方。然后要搞清楚edx是怎么来的。en,那就只能从头动调了。不相等则跳转,退出程序。

2024-05-04 16:36:38 277

原创 XY_RE复现(六)

发现是用数组实现的哈夫曼树,不知道去学学。有关于哈夫曼树的提示,还原哈夫曼树的节点。看一下别人的示意图.

2024-05-01 18:27:48 167 2

原创 XY_RE复现(五)

随机数种子是通过time来取的,C语言中的srand(time)是伪随机,直接爆破,题目描述给出了flag头为"XYCTF",根据这个信息去爆破随机数种子,即我们将v9的前5位与生成的前五位随机数做异或,如果结果与“XYCTF”相同,则那个随机数种子就是我们需要求的结果。嗯,自己玩分析可能有点麻烦,想想应该可以直接写脚本。给出了一些初始化,然后输入的flag拆分,两两一组,通过for循环放入encrypt加密函数。随机数是16位的: 可以int num = rand() % 0xFF;

2024-05-01 17:54:40 910 1

原创 XY_RE复现(三)

apk的dll,但我们需要解决的是exe,暂时卡住了,后面经过我的搜索,得到了GameAssembly.dll文件就相当于apk的那个.so文件,接下来就可以进行dump了。metadata 文件后,放入查找十六进制的文件,如果开头魔术字依然是 AF 1B B1 FA,那么一般来说是没有被混淆的。好吧,是ida打开GameAssembly.dll文件,Assembly-CSharp.dll还是用dnspy打开。结果output还是空的,看了一下,咔,dll文件被加壳了。嗯,有点复杂,先放在这里了。

2024-05-01 12:34:40 1104

原创 XY_RE复现(二)

先全选强制分析,但有很多爆红,先不管直接变函数,但不太对。别人的好像是直接成功了,悲(,不知道哪里出问题了,重新来一遍。函数,该函数会试图针对C/C++的函数名称进行优化,结果却误伤中文字符,我们将此处代码给NOP掉,就可以了。txt文件,一大串数据,应该是机器码,首先想着肯定先机器码变汇编代码。别人的好像是二进制文件,我的是十六进制文件,可能是这个问题吧。在字符串窗口,找到关键信息的位置, 发现是红的,全选然后按P。装qemu可以跑,试试,装好了,真的出flagl。很多函数不认识,烦(,

2024-04-29 23:00:00 722

原创 XY_RE复现(一)

Doraemon4 会初始化一个 512 字节的 BOX,然后用 BOX 加密 Doraemon3 得到 Doraemon1。复制反编译代码到新的 C 源文件,fputc 和 fgetc 互换,直接跑得到 Doraemon3。从输入文件中读取数据,对数据进行加密处理,然后将加密后的数据写入输出文件中。在加密过程中,使用了一个伪随机数生成算法,并将加密结果存储在。Doraemon应该是关键字符,没有main函数,该字符所在位置应该就是关键函数。还不太会,看大佬wp,还可以用z3来爆。又get到z3的新用法。

2024-04-28 22:54:37 276

原创 CTF_RE周报(二)

可以直接修改逻辑然后再编译回去,也有一个编译回去时候报错,可以把其dump下来,自己运行。修改eip跳到关键函数,修改某个变量的值以得到flag,还有要仔细点不要放过一些关键信息。大致流程懂了一点,jadx先分析,不对的话,mt提取安装包,可能还需要调试,要改包。是用c#写的,对了,先找到要分析的文件,主要要找到关键函数,那个类,分析到还好。还有Java代码什么静态,还有要触发的,还不太清楚,下周主要学习一下。还有可能引入一些库,需要拆apk包,得到so文件。调试接口,监视,控制进程。

2024-04-27 23:29:40 328 4

原创 unity游戏

unity游戏逆向主要可以分成两类,dll游戏和libil2cpp游戏,也有apk的。sha1加密密文还必须是40位,得到1001,在md5加密。注意md5函数,要大写,并且是0-20位。嗯,引入了很多函数,类,不好看。先Sha1再md5加密。

2024-04-27 22:21:56 379 2

原创 CTF_RE模逆题

模反演:对于模数 m 和整数 a,如果存在整数 b 使得 (a * b) % m = 1,那么 b 就是 a 在模 m 下的乘法逆元。可以使用扩展欧几里得算法来计算模反演。模逆:对于模数 m 和整数 a,如果存在整数 b 使得 (a + b) % m = 0,那么 b 就是 a 在模 m 下的加法逆元。

2024-04-27 17:32:32 413

原创 CTF_RE动调

一,不能f5反编译11DD处有问题,跳到此处,发现没花指令,smc之类的,直接nop掉。

2024-04-27 17:29:36 175

原创 BUU_RE

1. Data Structure是数据结构,发现*left *right,有左右两个指针,常用数据结构中使用right和left指针的数据结构很可能是一个二叉树(Binary tree)这个函数也不知道在干嘛,应该就是对flag的操作,但那个x[24*i]感觉有点莫名其妙。v3 + a1 flag的字符 ,256字符,应该是16*16的map。就是简单的输入flag,前几个是actf{ ,就一个对flag操作函数。嗯,想到没有输入,flag应该就藏在程序里,继续选择动调。走,字符就是障碍物,走到!

2024-04-27 17:26:59 305

原创 [FlareOn6]Overlong

表示发生了内存访问冲突,通常是由于试图读取或写入未分配的内存地址或无效的内存地址引起的。处的内存,但是无法读取,导致了访问冲突(Access Violation)。循环可以解决这个问题,因为你可以在循环体内控制循环的终止条件,即当列表索引。循环的地方,这里固定了循环的次数为 70,而不是根据列表。:指针被使用之前没有初始化,导致了对无效内存地址的访问。:代码尝试访问数组或其他数据结构的超出边界的部分。:内存数据被意外地修改或损坏,导致了无效的访问。:未释放的内存导致了内存耗尽或地址冲突。

2024-04-26 23:06:54 282

原创 BUU_RE

如果COUNT=1,OF标志有意义,如果移位前后数据的符号位发生了变化,OF=1;指令功能:把目的地址中的数据循环左移COUNT次,每次从最高位(最左)移出的数据位都补充到最低位(最右),最后从最高位(最左)移出的数据位保存到CF标志位。edit.getText()通常用于从用户界面中获取文本输入,toString()方法将其转换为字符串,然后使用equals()方法进行比较。v4本来等于0x00700004的,我的理解是:因为目标字符里面都是两位的,其实v4也应该保留两位,不然就行不通。

2024-04-26 21:28:29 387 1

原创 [NSSRound#18 Basic]新年礼物

Console.WriteLine("输入不能是NSSCTF2024,请重新输入。又想到可以直接copy下来运行,试试(是C#语言),修改if判断然后vs运行一下,得到flag。搜索PE文件头(DOS),开头有一个中间有一个,应该是打包在exe里的dll。}尝试删除,编译就报错了,估计不行。看别人wp,从第二个DOS处的MZ一直复制完。把if判断那个删了也不行,但是有那两个模块啊。应该就是和dll文件有关,用010打开看看。.dll .net文件要用dnspt打开。没啥关键信息,字符串发现了一个。

2024-04-26 17:27:30 139

原创 CrackRTF

同样是哈希算法,不过没有atoi函数了,所以可能不是纯数字了。cmd窗口运行,得到dbapp.rtf文件,得到flag。查看exe对应资源的字节数据,发现前六个字节为。rtf文档必须以 {\rtf1 开头。知道是6位数,所以直接爆破。那么就是当指定资源字节数据的。得到pass1,接着往下看。而异或后的内容将会被写入。的数据进行异或的结果应该为。

2024-04-26 12:32:32 313 1

原创 CTF加密算法

好像都是通过字符串发现,qmemcpy(a1,"大致是先初始化,矩阵置换,然后轮函数,生成密钥流。

2024-04-26 11:36:47 88 1

原创 [NSSRound#18 Basic]GenshinWishSimulator

抽卡题,抽flag。先想一下怎么搞:1.增加石头数量一直抽(有保底)2.flag藏在哪个函数,内存里3.增加中奖概率到100%dnspy各类函数文件不太熟悉Gacha是抽卡的意思,这里应该是抽卡的主逻辑Gift内可以看到主要逻辑,以array作为key为偏移(IV),用模式加密input数组,最后保存字符串到flag对象里。

2024-04-25 22:32:46 298 1

原创 [NSSRound#22 Basic]简简又单单

又找到加密函数:__int64 __fastcall Java_com_example_nss_MainActivity_encryptWithRC4(__int64 a1, __int64 a2, __int64 a3, __int64 a4)找到__int64 __fastcall Java_com_example_nss_MainActivity_validatePassword(__int64 a1, __int64 a2, __int64 a3, __int64 a4)

2024-04-24 22:31:19 304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除