- 博客(77)
- 收藏
- 关注
原创 BUUCTF—————[watevrCTF 2019]Repyc
1.是pyc文件用uncompyle6反编译。2.得到py文件,发现是有一大堆乱码。无从下手。# uncompyle6 version 3.7.4# Python bytecode 3.6 (3379)# Decompiled from: Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit (AMD64)]# Embedded file name: circ.py# Compi.
2021-12-30 15:12:09 1180
原创 攻防世界——zorropub
1.查壳,无壳,64位。2.IDA反编译。逻辑:从最后的输出可知flag为v12,而v12是由v9与dword_6020C0的异或得来的。v9是用srand和rand随机生成的伪随机数。可以根据前面的代码算出seed(种子)。3.exp(1)生成seed。(2)生成随机数,并解密。注:题目文件是elf文件是在linux系统上的可执行文件所以生成随机数要在linux系统上编译运行。相同种子的随机数在两个系统中值不同。windows系统:linux系统:...
2021-11-21 16:20:56 4183
原创 movfuscator混淆——re5-packed-movement
1.查壳upx加壳。2.脱壳,IDA反编译。发现主函数都是mov指令。看了大佬的wp才知道是movfuscator混淆。(在mov指令的图灵完备性被证明之后,就产生了一种使用mov指令代替其他各种指令的混淆机制,运算,跳转,函数调用都可以全部使用mov指令实现。)由于是movfuscator混淆,他只是把cmp,jcc等指令换成了mov指令,大体逻辑还是没变的。直接分析汇编代码。shift+f12查找字符串找到提示性字符串。跟进:发现有两处Guess a flag,wro
2021-11-20 20:07:59 926
原创 buuctf———[HDCTF2019]MFC
1.查壳。有VMP保护的MFC程序。2.第一次做MFC的题不知道如何下手,看了看放佬的wp。用xspy分析运行窗口。发现一个不正常的地方OnMsg:0464,写脚本向该处发送消息得到{I am a Des key}.Des??应该是DES加密,那密文在哪儿呢再用xspy分析是在HWND处看到字符串:944c8d100f82f0c18b682f63e4dbaa207a2f1e72581c2f1b猜测这是密文。3.get flag...
2021-11-16 20:46:37 643
原创 攻防世界—BabyXor
1.查壳,一开始以为没有壳,反编译之后发现没有什么函数推测可能有压缩壳。2.OD脱壳。f7步过后找到oep。右键脱壳3.IDA反编译。关键函数sub_40108C,sub_401041,sub_4010C3,sub_40101E分别跟进并分析可知前三个都是不同的异或操作,最后的sub_40101E是拼接操作sprintf(a1,a2,a3):是把a3的值以a2的形式存入a1中。sub_40108Csub_401041sub_4010C3...
2021-11-09 15:10:56 313
原创 攻防世界—APK-逆向2
1.看题目以为是安卓逆向,查壳才知道是.net文件。2.用dnspy反编译.net文件。关键就是read和search函数read:没太看懂,但看到fileName,可能是对文件的操作而文件只有一个就是我们看的这个,再看返回值可能是读取文件。(问了度娘,StreamReader是用来读取文件的,开始是文件位置的获取。)search:逻辑:以 “SuperSecretKey”为表,检索text(即打开的文件)取其下标进行运算得到16进制数(如果16进制数不足两位前面..
2021-11-07 16:40:24 768
原创 攻防世界—刷题(6)
一.梅津美治郎1.查壳:无壳,32位。2.IDA反编译。直接shift+f12查看字符串找到“You passed level1!”(有信息:flag不止一部分。),跟进。得到第一部分flag:r0b0RUlez!查看sub_4015EA函数,这里应该有第二部分flag。emmmmm,关键应该在__debugbreak,但是静态调试无法实现。直接动调这儿有个int 3断点,不太了解这个int 3,问了一下大佬:这里有个debugbreak函数,这函数的话...
2021-11-06 23:06:06 240
原创 攻防世界—刷题(5)
一.secret-string-4001.得到文件html和js文件。2.分析:关键在Machine.js中的check:Machine.js:找到check,开始分析。看了半天没找到到关键。3.找到放放大佬的wp学习了一下。发现要在run函数中加一句:console.log("new 0pcode"+command.args);运行在控制台得到加密源码:4.exp5.get flagWOW_so_EASY二.testre1....
2021-11-06 10:53:06 179
原创 reverse逆向算法之base58
原理:base58其实就是对base64变形,base58的检索表和base64比起来少了0,o,l,I(大写的i),+,/.检索表:“123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz”由于不在是64位所以不在适合原来三变四的加密方法。而使用了新的加密方法:将密文对58取模得到商和模,继续不断用得到的商对58取模,直到商为零(辗转相除),将得到的模作为下表检索base58检索表,最后逆序存入。得到密文。代码实现:/
2021-11-06 10:26:46 413
原创 攻防世界—刷题(4)
一.hackme1,查壳无壳,64位。2.IDA反编译。逻辑:对flag进行异或后与byte_6B4270比较。异或的值为while循环后的值,由于比较时,是对应比较,所以while循环在那儿都可以。3.expx=[0x5f,0xf2,0x5e,0x8b,0x4e,0xe,0xa3,0xaa,0xc7,0x93,0x81,0x3d,0x5f,0x74,0xa3,0x9, 0x91,0x2b,0x49,0x28,0x93,0x67]flag=""for i in ra
2021-11-01 19:43:40 240
原创 攻防世界—刷题(3)
目录一.ReverseMe-120二.Reversing-x64Elf-100一.ReverseMe-120二.Reversing-x64Elf-1001.查壳。无壳,64位。2.IDA反编译,关键函数在sub_4006FD.查看sub_4006FD:逻辑简单:依次选v3[0],v3[1],v3[2]中偶数位的值减一拼接得到flag。3.expx1="Dufhbmf"x2="pG`imos"x3="ewUglpt"flag=""f..
2021-10-31 23:39:24 265
原创 攻防世界—刷题(2)
一.流浪者1.查壳无壳,32位。2.IDA反编译。shift+f12查看字符串。找到pass!(通过)跟进。找到关键函数(猜的) :逻辑简单:写exp发现结果是乱码,前面应该是还有加密。快捷键x找到调用位置,这才是主函数。分析代码:逻辑:先判断是小写字母,大写字母或数字并分别进行减法操作,然后在以加密后的值为下标检索aAbcdefghiabcde中的值然后与”KanXueCTF2019JustForhappy“比较。3.exp4.get flagfla..
2021-10-30 00:07:41 134
原创 攻防世界—刷题(1)
1.parallel-comparator-2001.。.c文件,用记事本打开。2.分析代码:关键是result(根据main函数可知result=0)的计算argument[2]为flag,argunment[1]:differences argument[0]:爆破出的(范围是64~128)3.expflag==lucky_hacker_you_are...
2021-10-27 03:17:21 299
原创 buuctf————[CISCN2018]2ex
1.得到两个文件,先看txt文件,很像base64加密(留疑)对另一个查壳,无壳,32位。2.IDA反编译。没找到有用的提示性字符串。翻看一下主函数中的函数,这里发现了base64(换表)加密的代码直接猜一波。(某大佬曾说逆向七分逆三分猜)3,解密(我丢,对了。)4.get flagflag{change53233}...
2021-10-20 01:32:38 519
原创 buuctf————[网鼎杯 2020 青龙组]singal
1.查壳。无壳,32位。2.IDA反编译可以看到主函数中关键函数为:vm_operad(),逻辑就是:用switch分层加密,加密的结果为a1中7值之后的东西。(没太搞懂)3.解密(我学的太菜了,脚本没写出来,手撸的。)4.get flagflag{757515121f3d478}...
2021-10-18 20:33:52 251
原创 buuctf————[WUSTCTF2020]level4
1.查壳。无壳,64位。2.IDA反编译。关键函数在init(),type1(),type2().查看type2,type1.两个遍历函数。不好分析运行一下:出来两串字符:2 f 0 t 0 2 T { h c s i I _ S w A _ _ r 7 E e }2 0 f 0 T h { 2 t s I S _ i c A r E } e 7 _ _ w看了看提示字符:data structure code(数据结构),看看了数据结构,发现是二叉树遍历...
2021-10-18 17:52:34 316
原创 ctf.show————reverse
一.re31.查壳。无壳,64位。2.IDA反编译。分析逻辑:执行循环将v17进行累加(最后一位是flag),得到v16,v16在与0xffff比较(如果v16在累加过程中大于0xffff,执行第二个循环)。由于flag是加的最后一位数,可以动调得到前几位加完后的v16值。运行后v16==0xE560只需要是flag+0xE560==0xFFFF就可以。得到flag==0x1A9F3.get flagflag{1a9f}二....
2021-10-17 11:20:18 1406 1
原创 bugku————Sign_in
1.apk文件丢到jadx中,分析代码,将getFlag()逆序在进行base64解密,之后与flag比较。查看加密后的字符串在getFlag()方法中可得到加密后的字符串在c0243r.string.tostring处。注:这里的213142737360是一个id,在资源中找到id对应的信息在value的strings.xml中(可以知道这是字符串,字符串都是存在这个地方。)2.解密(1).倒序(2)base643.get flagflag{...
2021-10-17 09:59:32 1185
原创 buuctf————[GUET-CTF2019]encrypt
1.查壳。2.IDA反编译。加密函数在sub_400686 sub_4007db sub_4008fa跟进。第一个和第二个函数为RC4加密。(reverse逆向算法之base64和RC4_yhfgs的博客-CSDN博客)第三个函数:base64算法的一部分(只是把四个字符一组变成三个字符,没有查表)3.exp解密4。get flagflag{e10adc3949ba59abbe56e057f20f883e}...
2021-10-13 15:04:52 655
原创 reverse逆向算法之base64和RC4
目录一.base64二.RC4加密一.base641.简述:base64是逆向很常见,也很简单的算法,基本上是新手CTF必备。2.主要原理:将三个八位的字符转化位四个六位的二进制数(不足八位,高位补0),在通过查表来转化为字符。(众所周知,一个字符通常可以由八个二进制数来表示,例如:a 他的ascii码为0x61,转化为二进制数为:0110 0001)例如,将"abc'进行base64加密.将abc转化为二进制数为01100001 01100010 011000.
2021-10-12 19:43:09 1911
原创 buuctf————[ACTF新生赛2020]fungame
1.查壳。无壳,32位。2.IDA反编译。查看字符串。可以看到两个输入(第六行,倒数第九行)分别跟进,第一处:很简单的异或第二处:base64加密分别解密:拼接提交(卧槽),不对(还是天真)第一处:Re_1s_So0_funny!第二处:a1s0_pWn3.看了看大佬的wp才知道是栈溢出。在第一处加密后的函数sub_4013ba()中:在第一个cpy中把16位的copy到12位的引起栈溢出。(这就隐藏了第二处函数)所以在两个字...
2021-10-11 06:19:36 601 1
原创 buuctf————[watevrCTF 2019]Timeout
1.得到一个.com文件(我丢,还有这种文件。)直接用IDA反编译,不行。直接问度娘。再查一下壳。(elf,嗯~~)2.把扩展名改为exe,再用IDA反编译。看main函数啥也没有,翻一下周围的函数在generate找到关键。3.get flagflag{3ncrytion_is_overrated_youtube.com/watch?v=OPf0YbXqDm0}...
2021-10-11 05:18:16 389
原创 buuctf————[WMCTF2020]easy_re
1.查壳。64位,无壳。2.用IDA反编译查找字符串,发现没有运行时提示性字符串。可能是保护起来了。上网搜了一下perl。(没看到神么有用的,只知道perl是一种脚本语言。)3.看了一下大佬的wp。知道他们是从看雪的帖子找到的。既然运行就自动解压,用x64dbg调试。f8单步调试。到输入后换f7,一直跑就看到了flag。(防止是个假的,分析一下汇编代码,可知是字符串比较。)4.get flagflag{I_WAnt_dynam1c_F1ag...
2021-10-09 20:50:48 476
原创 buuctf————[GKCTF 2021]QQQQT
1.查壳。32位Enigma Virtual Box打包的QT程序2.解包Enigma Virtual Box。(这个不解包也可以得出flag)3IDA反编译。可以很明显的看出是base58加密。直接解密就可以。4.get flagflag{12t4tww3r5e77}...
2021-10-07 21:13:34 1517 2
原创 buuctf————[QCTF2018]Xman-babymips
1、查壳。无壳,32位。2.IDA反编译。两个位置有加密。第一个位置:第二个位置:大体思路:前五位就是第一个位置加密,之后的是两个位置一起加密得出。前五位很好得逆出:qctf{之后的位置我一开始想要逆出来。(太自信了,我还是个菜鸡)发现不会,就搜了大佬的wp(大部分是爆破出来的)发现他的解密脚本有位置看不懂,转战爆破。贴出来:(不知道&的值是怎么来的,还是太菜了。)3爆破脚本。(%0x100是为了防止溢出。)4.get...
2021-10-06 20:46:07 443
原创 buuctf————[NPUCTF2020]你好sao啊
1.查壳。无壳,64位。2.IDA分析。查看字符串。(有疑似base64加密方式。)跟进关键字符串:Congratulations!反编译可以看出关键函数是RxEncode,跟进查看。分析代码。(刚才看到base64的特点,以为会是base64换表加密。但看到关键代码,才发现不是。但可能与base64加密有关。)百度了一下base64的加解密原理:C语言实现Base64编码/解码_开挂的熊猫-CSDN博客发现这是一个base64解密函数(我屮,离谱,...
2021-10-03 16:41:57 1008 4
原创 buuctf————[羊城杯 2020]login
1.查壳。无壳,64位。(当时还不知到PyInstaller )2.直接丢到IDA反编译。发现啥也没有。(连个提示性的字符串也没有,但运行是有input something。很迷。)看了看大佬的wp,才知道这是PyInstaller打包的exe,需要解包。3.解包,反编译。(1)解包;下载PyInstaller Extractor(PyInstaller Extractor download | SourceForge.net)把login.exe与下载得到的pyins.
2021-09-30 18:08:05 894
原创 buuctf————[FlareOn5]Ultimate Minesweeper
运行一下文件踩雷游戏,只要踩到雷就会退出。(如果你是欧皇,可以直接点对。)1.查壳。无壳 ,net文件。2.用dnspy打开。翻看函数发现GetKey。应该是关键——输出flag的地方,查看调用他的地方这里的第一个if操作应该输出那个fail框的把他删掉。在保存。之后点开游戏,踩雷就不会弹窗了。随意踩雷就可已得到正确的数字。再把正确的数字再不踩雷的情况下把正确的数字点出就得到了flag。...
2021-09-29 20:04:49 239
原创 buuctf————[羊城杯 2020]easyre
1.查壳。无壳,64位。2.IDA反编译。查看字符串。关键字符串出现(you are right!)跟进。(还有下面俩行base64加密特点,推测有base64加密。)
2021-09-29 14:29:02 3214
原创 buuctf————[MRCTF2020]PixelShooter
1.得到文件.apk,安卓逆向。用dex2jar-2.0和JD_GUI.(一开是我是用的JEB,但不知道怎莫就用不了,老闪退,就改这个了。)首先把apk文件改为zip文件,直接改扩展名就行,然后解压,得到一个文件夹有用的是classes.dex(dex2jar 和 jd-gui 的安装与使用_katrinawj的博客-CSDN博客_dex2jar)用JD_gui打开,(看了半天,啥有用的都没有。)2.用另一种方法。在解压的文件夹中找.so文件用IDA打开。(我丢,六个.s..
2021-09-27 19:57:44 1360
原创 afterwave(九月赛)
一.cry1.math直接脚本计算2.Nash equilibrium文本长的一批,还有英文。这个题某程科菜鸡(?)是先手且获胜所以说某科比某辉多拿一次。把某科第一次的去掉,剩下的两两一组*9的结果就是121或117减某科的第一次。可知第一次是4(总数选121),那么一组的值为(121-4)/ 9==13.flag{4510122654711}二.re1.maze查壳,无壳32位。IDA打开。花指令用ODnop掉。重新IDA反编译,找主..
2021-09-25 16:30:40 304
原创 buuctf————[Zer0pts2020]easy strcmp
1.查壳。无壳。64位 。2.IDA反编译。找到主函数只是一个简单的比较。只需要找到对a2做的变换。(函数不多)。找到是sub_6EA函数。分析函数:把输入的flag8个一组(三组)与qword_201060的值相减得********CENSORED********注:字符串转十六进制数要小端序存储。3脚本解密。(不太会用binascii,只能手撸。太菜了。)大佬的简单脚本:4.get flagflag{l3ts_m4k3_4_DETOUR
2021-09-24 20:45:12 182
原创 buuctf————[FlareOn4]IgniteMe
1.查壳。无壳,32位。2.IDA反编译。函数很少,看到start代码。知道关键函数是sub_401050,跟进。很简单的逻辑就是把flag(byte_403078)逆序与前一位异或,第一位先与v4异或。得到byte_403180与byte_403000比较(及异或后是byte_403000)。v4的值:0x04(要是看不懂,可以跑一下,在循环之前设置断点,运行后v4的值会存在esp+0xb处)3.脚本解密。4.get flagflag{R_y0u
2021-09-24 18:58:08 613
原创 buuctf————[2019红帽杯]easyRE
1.查壳。64位,无壳。2IDA反编译。查找字符串。发现关键字符串(you found me!!!) ,跟进。(还有byebye下面base64加密特征。)查看代码十次base64加密(想到这儿,我以为要出flag了,只能说我太天真了。)用base64解密得到一个网址,点进去发现被骗了(淦)。3。再次重新找关键函数。(看了大佬的wp才知道关键函数在那儿)。关键函数就是在这个函数的下面:sub_400D35.c查看代码。if这里判断一个f,一个g。.
2021-09-24 18:10:43 1203
原创 buuctf————findkey
1.查壳。无壳,32位。2.IDA反编译。shift+f12查找字符串。发现关键词flag。跟进。发现IDA没有反编译成功。手动反编译(p键)。第一次做的时候按了p就出了。复盘的时候不知道又不行了。又找了找原因发现是花指令。 (这个位置两个一样的push删掉一个就ok)3.分析代码。关键函数是sub401005.根据if条件可得string1(MD5加密后)(看最前面sub40101e函数可知string经过了MD5加密)(a2-748)是0...
2021-09-18 18:22:46 1042 1
原创 buuctf————丢失的MD5
1.得到一个py文件打开。先运行一下。看到错误.大致意思要在算法之前编码。2.修改后运行。得到flag。3.get flag。flag{e9032994dabac08080091151380478a2}
2021-09-18 15:06:08 566
原创 buuctf————N种解决方法
1.将exe改为txt文件。2.可知这个可能是个图片。(还有base64,难道后面的一大串是base64加密)用base64图片解密(偶然看到下面的东西。这不是和那一大串差不多奥。)3.用h5写一下。运行的到一个二维码。扫码得到flag。4.get flagflag{dca57f966e4e4e31fd5b15417da63269}附:用base64解码,同样得到二维码...
2021-09-18 14:26:55 1675
原创 buuctf——[CFI-CTF 2018]IntroToPE
1.查壳,无壳,32位,并且是.net.2.用dnSpy(32位)反编译。看一下程序运行结果。可以发现是一个messagebox,关键是在Validate按件(是一个button按钮)。在dnSpy中查找。找到button1_Click.查看代码。可知flag2即为答案。分析代码,跟进。可知flag为base64加密,加密结果为:Q0ZJey5OZXRDI18xc19AdzNzMG0zfQ==3解密4.get flagflag{.NetC#_...
2021-09-11 15:18:41 753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人