BJDCTF2020 --逆向题练习记录(题解wp)

[BJDCTF2020]JustRE

题拿到了,看起来这种点一万次的东西可能会藏东西在资源文件里,Resources Hacker看了看没东西。

那正常来看看,Exeinfo 32为VC6无壳。

查串(其实直接在处理函数那边看一眼就看到了)后在处理函数里找到猫腻,这里需要点20000次,跟我连点器比划比划?(x)

其实直接可以读出来,这里的flag是19999,0拼接那个明文。
BJD{1999920690a45792d233ac}

[BJDCTF2020]easy

起手几个步骤就先忽略,,

开头就被“Can you find me?”嘲讽了一波,忍不了,发现主函数里无其自定义函数(ques)的调用

自定义函数ques里先是定义了一串密文,然后根据这个密文的最高位进行一些奇形怪状的运算,最后根据运算结果来输出一个由‘*’和‘ ’组成的图。

tip:这里因为是最高位运算可以推测是根据上面数组的二进制来判断,不过没什么影响,这题可能算是有非预期?

说实话,这题感觉出得很迷茫,也可能是太照顾新人了,猜一手出题人是想让选手根据这个函数进行解密,但这里其实把这个函数几乎是copy过来再改一改就能输出信息,这是静态的解法。

而我在做这题的时候走的是动调,我就在想,这个函数没被调用的话,那我改一改让它被调用看看?于是我就ollyice调了调,到查串到主函数下断,在主函数挑选一行幸运代码改成call ques的地址(这两个函数挨在一起的,主函数往上翻翻再读读代码就判断出来了)然后就跑出来了flag:HACKIT4FUN

flag{HACKIT4FUN}

[BJDCTF2020]BJD hamburger competition

这题比较的有意思,也比较的没意思,这个小游戏还是很用心的(做这种东西花时间呐)

Unity题可以上_Data\Managed找那个Assembly-CSharp.dll,源代码都在这,拖dnspy看看(这里我忘记有没有壳了,懒得再重新验证。有壳的话我记得可以上de4dot?)

在其中一个类了很轻易地找到了加密函数与代码,这里可以知道其先是根据你点的食物(?)进行一个运算,然后把这个运算结果sha1加密之后跟一个明文比较,比较成功之后md5加密就是flag。

感动,这里的sha1和md5居然没有魔改,真的对新人很友善了。把明文sha1解密一下,得出数字1001,然后md5加密即可。

tip:这里的md5取前20位

但这里有一个地方比较鬼(也可能至少我太菜了orz),因为这里的md5是全大写,而我一般是用网站加密,加出来的是小写(自己写的md5也是小写orz),所以一开始试了好几次都不对,迷茫了好一会,,,,
BJD{B8C37E33DEFDE51CF91E}

你可能感兴趣的:(二进制CTF,逆向工程,程序career)