CTF
S1lenc3
https://s1lenc3-chenmo.github.io/
展开
-
83:Whitzard OJ逆向-Dont Crack It
这道题我也是很懵,不知道怎么拿到flag,也找不到writeup,求大佬指点。先查壳,UPX,直接-d脱衣服。可以猜出这两个函数。这个是加密函数,刚开始还傻傻的分析了一下sub_401a29,里边超多代码,后果断放弃,后来再看了看,发现这个函数是独立的,不受我们输入的影响,所以直接gdb调试dump内存。 命令: b *0x?????? x /16x 0x?????然后...原创 2020-03-03 23:08:46 · 300 阅读 · 3 评论 -
82:Whitzard OJ逆向-Real packer1
ASpack壳,直接工具脱掉。看伪代码。这段代码是16进制转10进制的。然后看关键函数。程序主要是将3个输入8一共24位,6位分一组变成4个输出,所以很明显是base64加密。这里换了加密表,跑脚本。import base64s1 = '373435323330313E3F3C3D3A3B383926272425222320212E2F2C171415121310111E1F1C1...原创 2020-03-02 22:43:09 · 309 阅读 · 0 评论 -
81:Whitzard OJ逆向-Real packer2
这是我的逆向启蒙题,第一次做的时候分析了半天,这次看了一下就大概懂了。查壳是UPX,直接UPX -dIDA分析。进入函数看看。就是根据输入的值作为偏移,然后取出偏移的地址中的值,这些值组合到一起是DDCTF{reverseME}写脚本s = [0x7E, 0x7D, 0x7C, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x73...原创 2020-03-01 20:45:50 · 329 阅读 · 0 评论 -
80:Whitzard OJ逆向-Introduce to packing
IDA载入找不到关键代码,估计被加密了。通过找入口点确定函数从哪入口。可以看到入口点在nop处,可以发现从check到nop这段被异或加密了,练习IDA脚本的时间到了。start = 0x80484fbend = 0x80485fafor i in range(start, end): ida_bytes.patch_byte(i, ida_bytes.get_byte(i)^0...原创 2020-02-29 21:07:59 · 176 阅读 · 0 评论 -
79:i春秋战役-奇怪的安装包
拿到题OD分析了好长时间,根本不知道该怎么做,果断放弃。好菜,找不到工作,唉后来知道是用nsis做的安装程序,其实exeinfo工具可以查到。直接百度百科就有NSIS的介绍。 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NS...原创 2020-02-28 19:49:39 · 242 阅读 · 0 评论 -
78:Whitzard OJ逆向-Python reversing(一)
pyc拿到文件使用uncompyle6进行反编译得到源码。发现是AES加密,直接用脚本解密就完事了。from Crypto.Cipher import AESimport base64password = b'_th3_s3cr37_k3y_' #秘钥text = b'/\xce\xcc\x11\x8c\xb8\x8c\xcc\xfb\x0c\xb8\xb9\xab\xbb\xdf\...原创 2020-02-25 22:44:14 · 315 阅读 · 0 评论 -
76: Whitzard OJ逆向-Encrypt-Base encoding
分析了代码,看了题目,猜出是base系列加密。base64不对。分析了好半天,以为是base64换表加密,但还是搞不出来,想找writeup也找不到,然后随手搜了一下最终比较的字符串,没想到百度出来一模一样的字符串了。才知道这是base58,卧槽,base真牛逼。。。然后直接base58解密就是flag。base58的特征:123456789ABCDEFGHJKLMNPQRSTUVWXY...原创 2020-02-14 21:41:15 · 236 阅读 · 0 评论 -
75: Whitzard OJ逆向-Encrypt-abc
这里a1大于1,所以需要给参数。这段代码,主要是把参数分为三段。第一段就是前4位,第二段是4到9位,第三段是9到12位。然后两个strtol说明第一段和第二段是16进制的数字,也就是0-F。函数是sha1加密,用findcrypt插件查出来的,动态调了一下,确定就是sha1了。最终需要满足4个条件才能获取flag。第二段的sha1加密等于69fc8b9b1cdfe47e6b51a...原创 2020-02-13 22:52:07 · 165 阅读 · 0 评论 -
74: Whitzard OJ逆向-Encrypt-easy
大题目是加密,如果没见过的话,那就得慢慢看代码了。查看IDA代码,有三个函数很重要。第一个函数和外部因素没有关系,所以只需要动态调试拿到函数的结果就可以了,可以拿到一个256长度的数组。第二个函数做了异或操作。第三个函数根据特征猜测是base64换表加密。三个函数还原python代码大概如下:import string#第一个函数s1 = []str = 'Please inp...原创 2020-02-12 23:36:49 · 189 阅读 · 0 评论 -
73: Whitzard OJ逆向(三)——DotNet Reversing
Easy DotNet使用dnspy打开,找到Letters,拿到key输入即可得到flag,也可以直接写脚本跑出flag。SmartEnoughdnspy打开发现加了混淆。hint是de4dot使用de4dot进行反混淆。然后可以直接拿到flag。Where is my 13th countunity写的游戏,C#代码需要反编译Assembly-CSharp.dll游戏...原创 2020-02-11 22:43:21 · 294 阅读 · 0 评论 -
72:Whitzard OJ逆向--Validator3000
直接IDA分析,找到关键处,猜测就是通过sub_401510对一段代码进行解密,解密代码是用的windowsAPI库函数写的,看不懂,想着可以通过动态调试,然后发现还有防御,动调的话程序就不能正常执行了。根据题意和提示:可以知道,只要把程序跑起来,就能拿到flag,hint给了dump内存和unicode,使用软件procexp转储内存。然后IDA打不开,windbg也...原创 2020-02-10 22:58:33 · 249 阅读 · 0 评论 -
71:Whitzard OJ逆向(二)
团队打了一下午awd,第一次打,节奏太快,跟不上,web太菜,只会逆向不会pwn,纯混子......Dynamic analysistimeIDA伪代码很容易看出来。搜索关键字符串,交叉引用。逻辑很简单,直接修改跳转就OK了。game游戏没怎么玩,直接看的IDA伪代码,虽然题意是要动态调试,但还是看看代码吧。函数的大概意思都标注了。这道题花了不少时...原创 2020-02-09 22:27:49 · 306 阅读 · 0 评论 -
70:INSA2019-xHell
这道题给了一个表格,有函数表达式。=IF(AND(E82=1,B1>1,B1<=256,C1>1,C1<=256,D1>1,D1<=256,E1>1,E1<=256,B1-C1=46,E1-D1=119),"Congrats! Here is yout flag: INSA{"&TEXT(B1,"0")&"-"&TEXT...原创 2020-02-08 21:33:44 · 228 阅读 · 0 评论 -
69:Whitzard OJ逆向(一)
废物了半个月,不能继续对不起自己了,太菜了,入群题都不会,闭关修炼吧。simple format题目名字,简单的格式化,看名字好像是pwn题,IDA看看。直接看关键处吧。真让人头大,又有新知识可以学了,直接找writeup。经过参考,弄懂了这一串字符的意思。%s 决定类型, * 决定宽度, $ 决定第几个参数。所以 %1$*2$s 就是第一个参数以长度为第二个参数...原创 2020-02-07 22:21:10 · 291 阅读 · 0 评论 -
第62天:2019Xman冬令营选拔赛部分writeup
Mobile直接拖入JEB,标准的输入和提交。然后把输入框的值赋给passt和flagt。分别是Long和string然后判断flagt是否为空,最后调用原生方法check。啥都不用想,直接解压上IDA。Arm汇编压根不会,直接看伪代码猜吧。这三个估计就是调用Factor类的factor方法,参数是passt。然后继续走到下一个函数。a5...原创 2019-12-31 21:59:00 · 837 阅读 · 0 评论 -
第47天:KCTF-独树一帜
被这么一道题整自闭了。很容易看出,加密函数就是401000函数。然后发现程序逻辑如此简单明显,估计5分钟搞定。用C语言写脚本,写了2个小时左右,一直失败,我吐了,对于内存访问冲突和初始化我无能无力,这个坑我还没爬出来,所以放弃了。然后用python写的脚本,这里要注意3个byte_xxxxxx。起初,我以为这三个不连,而忽略了后两个,其实:所以,只要给他们都赋值...原创 2019-12-16 22:01:19 · 278 阅读 · 0 评论 -
第46天:红帽杯2019-childRE(二)
昨天说到处理完输入了,今天把这道题干掉了,一定要有耐心,慢慢调试。把输入的三个数设为x,y,z。断到这里,注释都标注了,自己分析一下。在这里,发现goto到label_47就直接到运行结束了,没有flag,所以就不让他跳转,就要满足x<z类似的,也要满足y<x。继续单步,来到一堆计算的地方。这里是计算位数的。这都是一步一步分析的,没什么说...原创 2019-12-15 22:31:30 · 428 阅读 · 0 评论 -
第45天:红帽杯2019-childRE(一)
1.上午考四级,来年再战。2.下午出去玩了,没学习。3.放弃学习是不可能的,今天待在实验室了。今天打算复现一下childRE,直接拖到IDA,代码好长,我好害怕。搜索关键字符串定位函数。三处Sleep,直接patch,推荐一个IDA的patch插件,之前的博客也提到过,然后,这TM是啥。。。。对我这个菜鸡来说,只有自闭了。这是STL,我压根不会。。。。没办法...原创 2019-12-15 02:15:36 · 466 阅读 · 0 评论 -
第18天:红帽杯2019-childRE
继续复现红帽杯逆向题。程序流程:输入并且检测长度,可以看到长度是31。这是一组变换函数,搞了好长时间才弄懂。对v2进行反修饰,得出的结果存入outputString,outputString长度为62.取outputString的字符串进行除和取余,并且作为a1234567890Qwer的索引,对指定索引进行明文比较。这就是正确的程序流程。解题思路:...原创 2019-11-17 19:29:53 · 752 阅读 · 1 评论 -
第16天:红帽杯2019-easyRE
复现easyRE看了几篇writeup我始终没弄懂是怎么找到真正的加密算法的。搜索字符串,看到you found me。交叉引用来到主函数。这串代码首先对给出的明文加密,加密后的结果是Info:The first four chars are `flag`。然后是十次同一个函数加密,最后和明文比较,查看明文很像base64加密的,所以base64解密十次得到了https://b...原创 2019-11-15 18:47:06 · 1482 阅读 · 0 评论 -
第15天:红帽杯2019-XX
比赛的时候一道逆向没做出来,ezre还被耍了,也没做出来,这两天搞android,那个AndroidStudio给我整了一天,我哭了,今天复现一道题,一天就这么没了。。。。XX这道题思路很清晰:输入 取输入的前四个字符 进行XXTEA加密 通过置换box进行置换 3个为一组做循环异或 和明文比较难点就是那个XXTEA加密,然后装了一个插件,FindCrypt ,百度有安装教程。...原创 2019-11-14 21:50:51 · 1262 阅读 · 2 评论 -
第14天:湖湘杯-reverse(二)
Reverse3好了,直接上dnspy,好多代码,当时很烦躁,直接放弃,下来看了看writeup,也不是很难,戒骄戒躁啊。找到main函数,这就是代码审计了,我对加解密一无所知,所以每次遇到加密算法都觉得好烦,这道题直接给了加密函数和解密函数,因为最后是和字符串b作比较,所以就用解密函数对b进行解密就OK了,看了两篇writeup。http://baijiahao....原创 2019-11-13 15:38:04 · 169 阅读 · 0 评论 -
第13天:湖湘杯-reverse(一)
Reverse1UPX3.94 直接官网下载工具脱壳。然后IDA分析,查找关键字符串,交叉引用,一气呵成。。。。首先检测参数,然后对参数进行了变换,并且再和Str1比较,经过脚本转换,参数是flag.txt,猜测这是一个从文件中读取数据并且再做比较。这里有个问题,就是参数是flag.txt,然后经过变换,打开的文件名是Str1,所以如果不patch的话,这个程...原创 2019-11-12 21:28:36 · 265 阅读 · 0 评论 -
第7天:上海大学生CTF-Puzzle学习
时间紧迫,直接切入正题。看到5个函数,如果5个函数通过检测,就会输出flag。通过这个题我发现,逆向还是不要太依赖IDA的伪代码。。。。第一个函数检测输入,是否是16进制数。第二个函数,进行16进制解码。然后看第三个、第四个和第五个函数。发现第五个函数只需要第四个函数的一个参数,而第三个函数和我们的输入没有关系。跟进第四个函数,看看这个v10怎么变换。和v10有关的就是...原创 2019-11-06 22:20:52 · 872 阅读 · 0 评论 -
第4天:RoarCTF-Polyre学习
之前看到过一次平坦化的题,不是很复杂,就纯分析,这次这个实在太狠了。所以学习了一下脚本的使用。https://github.com/cq674350529/deflat这个angr安装可能会踩很多坑,我已经忘了怎么踩得了,就不过多讲解了,自行安装。然后使用defalt.py进行去除平坦化,成功去除后,代码看着舒服多了。但是会发现有很多永远为真的跳转,迷惑人的,叫虚假...原创 2019-11-03 16:11:38 · 792 阅读 · 0 评论 -
第3天: dnspy逆向unity游戏
调试Unity游戏dnSpy可以调试Unity调试版本和发布版本。发布版本需要修改的文件是mono-2.0-bdwgc.dll / mono.dll。也可以将发布版本转换为调试版本(还不会)。调试发行版先备份游戏,然后进行调试。调试就需要对mono-2.0-bdwgc.dll / mono.dll进行打补丁,有现成的,需要调试,直接替换文件即可。首先需要知道Unity的版...原创 2019-11-02 23:42:38 · 7110 阅读 · 0 评论