MOCTF 逆向题 writeup
moctf平台:
http://www.moctf.com/challenges
后两道题的 writeup,写完后就安心去做 160个crackme了,嗯,感觉通过前几个进步还挺大的
moctf 逆向第四题:crackme1
打开后啥都不要求输入,出现一串字符,说是 flag,但是每次打开都不一样
载入 OD,通过字符串找到
但是因为不知道该怎么分析,干脆直接段首下断,然后单步跟踪
找到算法部分,算法:
逐个取定义好的“2410488”
乘以 2 后减去 60 (十六进制)
除以 4 之后加上 3
对 10 取余,得到结果
在刚开始一直不知道这里的数是怎么出来的,在心里把[edx+edx-0x60]当作一个地址了,后来发现,这他妈的不是存放的刚赋值的字符嘛!!
写出脚本,跑出 flag:4533577
flag:moctf{4533577}
moctf 逆向第五题:crackme2
通过字符串定位获取输入的位置
然后按步跟踪找到加密函数
步入加密 CALL,分析算法:
依次取输入的字符串
从6开始,与输入的字符串进行异或
异或结果与定义好的字符串进行比较
红框圈出来的是定义好的字符串
0<1<>;?8:%w!##&#q./,x(,((
下面的那个 CALL 是进行对比的
可以看到我们输入的进行加密后是 7F,而规定的应该是31
写出脚本跑出应该输入的字符串
输入正确的后在进行测试,nice !!!
然而,这并不是 flag,需要将它转换成字符串形式
77486572655f30735f666c4167
wHere_0s_flAg
所以 falg 是:moctf{wHere_0s_flAg}
呼~结束了,老老实实再学那 160 个 crackme 吧
本文分享自微信公众号 - 陈冠男的游戏人生(CGN-115)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/3988855/blog/4352348