re-for-50-plz-50
该题比较简单,直接ida分析就可以,虽然不能出伪代码,但单看汇编就行
首先看到一串字符串,估计进行转码
看到异或
尝试python转码,得到flag
The_Maya_Society
这几天来比较让我头秃的题目,脑洞题吧,可以取巧的那种,真的头秃还是实力不行,首先扔到ida静态分析,看到一个取时间的函数
所以跟时间肯定有关系,经搜索找到关键函数,打开观察形式估计是MD5加密
然后运行,进行分析会发现一个期间有数据和时间存在了寄存器(这里我已经把时间给改了)
后面就是脑洞时间了,也就是这个题折磨我的开始,我开始以为玛雅文明有关的,第一个想到的就是2012世界末日,而且根据其中的格式,具体直接到了日,所以我把当地时间改了,出来了数据,a0ab7eafc534bc4a8a48cd6e1cfc4d24,MD5的形式,但flag不是这个,后面就是自闭的开始,查看了其他wp发现也不知道怎么出来的一个奇奇怪怪的数据。直到后来本人才发现我忘了最本质的,linux试运行,然后
flag就出来了。。。。。。。。。。。。。
学艺不精吧。。。。。。。
key
放ida里面,这种题一般都是看着特别吓人但其实,没那么难,大概就是函数对一些数据进行变化,但是你会发现里面都是函数套函数,所以废话不多说,直接动调。
然后你就会发现,在这一处循环的时候,寄存器里有一些奇妙的变化
循环完了以后,查看ecx,你就会发现一些可爱的字符,这就是我们的flag啦!
handcrafted-pyc
自闭题目之一,同时在这个题目里面学到了一些反序列化的东西,至少之后看见了之后就认识了,无限自闭沉浸地在这道题之中,不多说,首先根据题目,pyc文件,反编译的python文件,首先丢到反汇编程序中,失败,只能用 C32来看一下二进制,很幸运,题目还是有提示,看来应该是python了用到了marshal、zlib、base64,然后是数据,开始操作
这里我遇到了一点坑,因为python版本不同,marshal反序列化的东西也会有所不同,所以这里我因为用的python3所以一直失败,就跳过,直接将用的kali python2发出来好了,进行反序列化操作,查看编程文件信息
通过函数,把其通过文件输出
这一部分可以参考以下网址
https://blog.csdn.net/mldxs/article/details/8574518
https://www.cnblogs.com/chenjianhong/p/4144470.html
https://www.jb51.net/article/68732.htm
这时候按道理应该可以反编译了,但还是失败,这里我看了别的wp才明白可能是因为头文件不对,所以不对,就需要往前面补上8位pyc需要的头文件,由于技术太菜,所以只能通过手动C32进行添加,下面是添加之后
然后反编译,虽然失败了,但还是有文件,发现是一个汇编语言,这里是因为作者用成组反序对代码进行了操作,所以才会无法编译成真正的源文件,如下图, ROT_two
然后将里面passord以下的chr筛选出来,用python跑一下,找出
ctihN{noy woc uoc naipmoa eldnur yP nnohttyb doceni euoy rb ria}!
然后四个一组还原就行,但是这里非常蛋疼的是,还原不出来,得出以下代码
hitcon{Now you can compile arund Py honnbyttcod ineyoue br }air
我一直以为是自己错了,后来发现是题目给的顺序不太对,自闭,反正醉翁之意不在酒,主要还是学习一下pyc的头补充。