- 博客(12)
- 收藏
- 关注
原创 TO DO LIST(2.25)
下载PyInstaller解包脚本,将文件和脚本放同一个目录,打开cmd,输入python pyinstxtractor.py xx.exe。得到flag:GWHT{58964088b637e50d3a22b9510c1d1ef8}Z3 的核心思想是定义变量、添加约束条件,然后求解这些约束。今天写了buu上的一题:pyc打包exe、z3约束条件,也是初步学习了一下z3求解器。照葫芦画瓢就能写出脚本了(还有一些xor运算,不多说了)提示PyInstaller打包,文件下载下来是exe文件,用查壳。
2025-02-25 23:20:08
116
原创 buuctf [Zer0pts2020]easy strcmp 题解
这里是对a1数组进行了加密的操作,然后再比较,所以a1是明文,a2是密文,a2大概率是主函数中的zer0pts{********CENSORED********},然后v4(明文长度右移三位)+1其实=(长度除8)+1。start函数,这里面有一个_libc_start_main函数,可以看到参数中有main函数,查了一下,简单来说就是init参数先于main函数执行,所以我们去看init函数。看最后返回的函数,是刚刚存放strcmp地址的函数,所以这里进行了比较,那么这里就是关键段。
2024-12-11 22:24:44
279
原创 buuctf-re Youngter-drive 题解
当一个线程加锁后,另一个线程需要等待解锁才能执行,所以这里可以实现一个交叉执行函数的操作。然后第二个线程中的函数只有递减操作,没有加密操作,由此实现了对。新建两个线程,一个线程startAddress指向startAddress函数,另一个指向sub_41119F,都进去看看。这里对比上一个线程少了加密代码,所以这里函数并没有实际操作,单纯让迭代子dword_618008。工具脱壳后拖入ida反编译,发现很多不认识的api函数,具体作用不讲了,可以自己去查。整体梳理一下,当第一个线程调用函数时,
2024-12-07 01:12:40
418
2
原创 buuctf-re [ACTF新生赛2020]Oruga 题解
值得注意的是,player的移动是连续的,直至遇到障碍物。迷宫题,无壳,64位elf文件。进byte_201020看地图。打印一下map,用的这位师傅的。
2024-12-03 20:17:28
246
原创 buuctf-re [FlareOn6]Overlong题解
加上题目的overlong(过长)!所以我们大胆猜测是flag没有输全!(其实我根本没有想到,是傻愣愣的看算法看不明白后看大佬的wp才知道)messageBoxA函数创建了一个对话框,caption为标题,那我们可以运行一下程序。转入汇编,右键28,patching成70,再patching apply to,转出来。翻译了一下说是找不到路径,发现文件路径包含了中文,删掉就行。这个28大概率就是长度len,我们只要多输出点就行。我造怎么成bak文件了,不管了,直接ida里运行。好像少了,自己多整几位就行。
2024-12-02 20:28:19
207
原创 buuctf-re 特殊的 BASE64题解
嘿嘿,出来了flag{Special_Base64_By_Lich}下面那个字符串很像魔改的码表啊,丢cyberchif看看。虽然看不懂代码,但是可以通过输出的内容猜出哪些是关键段。查壳,无壳64位exe,丢入ida。一连串的c++,看不懂一点。shift+f12查字符串。
2024-12-02 19:52:48
144
原创 buuctf-re [GWCTF 2019]xxor 题解
从明文text取出之后进行enc函数加密,被加密的low与hi再放入v7数组中,循环三次,而v7的长度为6,实际上这里取高低字节的操作是取了v7[i]和v7[i+1]。为什么呢,进函数看看。上面的HIDWORD和LODWORD查了一下资料是取高低4字节,如果是HIWORD就是2字节。明显的tea加密,v3,和v4就是v7[i]v7[i+1],将部分变量重命名,方便分析。写个脚本解密即可,但这里我们缺个密文,去另一个cmp函数找。用的大佬的脚本,不记得看的哪个师傅了。无壳64位elf文件。
2024-12-01 16:50:35
137
原创 buuctf-re题解(新手复盘wp)
注意看字符串中,包含了’1‘和’#‘,只有判断到’#‘才能正常结束程序,配合上文获得的信息,我们的人物不能移动到‘1’上,且‘#’是终点,*11110100001010000101111# 的长度是25,25只能被5整除,所以这是一个5*5的迷宫,我们将迷宫正确输出出来。再声明:感觉一题一题来效率好低,我写wp的目的是为了查漏补缺,所以以后就写曾经卡了我很久的题吧。可以看到这是一串字符串,而49和35转成字符后是’1‘和’#‘,那么!那么我们只要走到#,那路径就是flag了。看不懂,先不管,从后往前看。
2024-11-25 10:57:58
399
原创 buuctf-re题解(新手复盘wp)
老规矩,if判断两个字符串是否相等,看上文知道Destination是经过加密之后的flag,那么str2就是密文了,点进去看看。可以看到这里对Destination进行了一个偏移,所以脚本中挨个减就行。很明显,这是base64码表(具体可以搜索base64编码原理)v4=sub_4110BE函数的返回值,而实参中有输入的。那么刚刚得到的字符串就是经过了base64加密后的编码了。拿到密文,我们只需要将字符串按照加密算法逆一下就行。声明:re新手 定时更新wp。七、reverse3。%3这个特征让我想到。
2024-11-21 19:24:41
257
原创 buuctf-re题解(新手复盘wp)
下好工具后,在upx脱壳工具目录下打开“在终端打开”,然后输入.\upx -d "文件路径",或者win+r打开“运行”,cd upx文件目录,将需要脱壳的文件脱到upx工具文件夹下,然后upx -d -文件名 也可以。这里进行了一个异或赋值,回头看看题目 xor 其实就是异或的意思,那么这里就是主要加密段,我们直接使用upx脱壳工具,首先去github搜索upx,第一个就是。mac系统64位的文件,不管,丢ida64。_b为键入的flag,看看global。声明:re新手 定时更新wp。
2024-11-19 21:32:21
179
原创 buuctf-re题解(新手复盘wp)
查壳,无壳,64位elf文件(ELF 文件格式是 Linux 系统中最常用的文件格式,它不仅用于存储可执行文件,还广泛应用于目标文件和共享库中。可以看到上面flag的值是78h,按r键转成字符型,{hacking_for_fun}丢到ida64里去,shift+f12,看到这个很像flag的字符串,进去看看。很像flag吧,现在去主函数看看有没有改变flag值的地方。拖入ida,老规矩,shift+f12。这么熟悉的格式,直接丢buu看对不对。声明:re新手 定时更新wp。错了,好的让我看看题目要求。
2024-11-18 17:38:50
180
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人