【CTF】Reverse LOADER pell方程 nim-lang 蓝帽杯 逆向学习
浏览 435 | 评论 2 | 字数 2449
Xunflash
2022年07月11日
  • 蓝帽杯初赛逆向LOADER复现

    分析

    首先一进来直接开幕雷击

    image-20220711174310559

    可以看到加载了一个程序在里面,点进unk可以发现MZ开头的数据,直接猜想里面有一个程序。当时第一反应是dump程序出来,但是发现dump出来的东西运行不了,于是直接放弃了。后来经过wjh大佬指点,可以直接动调。于是直接开调

    动调这个也可以讲一点,基本上程序进行输入输出的地方肯定是关键函数。这个题要找到关键函数的话,键盘上先多按f8,注意call哪个函数之后程序输出东西了,那么打个断点,然后重新开始程序再f9到这个地方f7进这个call,这样反复,肯定能快速找到主要函数。

    image-20220711182948682

    例如这边就找到main_0了,然后下面几个call其实点进去看一下就差不多知道了,其实主函数在这里(可以熟练用快捷键n去改一下这些函数名,方便识别。)

    image-20220711183137866

    那么调到这里之后,可以继续往下走,发现下面一个就是输入数据,这个时候可以点进函数返回的数据下去看一下,可以看到这其实是一个结构体,我们可以选择进入structures创建一个结构体。当然也可以不创建。

    image-20220711183432128

    这边这一块,点进数据看一下,可以发现其实是检测前五位是不是flag{

    image-20220711185006778

    同理在这边也可以发现是flag格式的检验,同时可以知道flag总长度是42

    image-20220711185130813

    利用同样的方法,可以很快的知道下面的循环在做的事情,也就是提取flag{}括号内前十八位数据放入v13

    image-20220711185316759

    同理也可以得到下面这个函数的作用,就是把字符串变成int值。(听说可以对照着字符串去nim-lang的源码搜,长知识了)

    image-20220711200300342

    接下来是几个关键的函数,同样可以通过对数据的观察,猜测函数做的事情。例如calculate这个,最开始我是不知道他是干嘛的,因为不像之前的str2int,这个出来之后是一堆奇怪的数字。

    但是能知道的就是他对v28和v27两个这两个变量(实际存放的是输入flag的前十八位的数字)做了什么操作然后给了v31。那么传入两个数字的话,应该是进行了一系列运算。

    那么可以先拿出v31的数据,与前十八位的数据进行对比。最后我们可以发现其实这个函数是拿前两个参数相乘,给到第三个参数里面。假如还是说不清楚是干嘛的,可以去源码搜一搜,可以发现是运算的函数,基本上猜一下也就出来了。

    image-20220711200505953

    同理,有好几个乘法,还有一个减法

    image-20220711203042109

    最后这里是一个check,动调可以在上面直接拿到密文9

    image-20220711203119883

    于是我们最后可以得出一个式子

    $$ inp1^2-11*(inp2^2)=9 $$

    同时数字需要为18位数也就是100000000000000000<inp1<999999999999999999

    解答

    我们把式子直接拿到网站上面可以解出来结果

    image-20220711203500459

    拼接起来发现会少一位,发现y只有17位,那么加个-或者前面加个0应该都行。

    补充

    观察到别的师傅的wp里面的x是有一个确切的范围的,应该是前面这一部分判定了x的范围。

    image-20220711203807347

    总结

    比赛的时候去看取证了,re没做,实际复现起来的话,应该是花了挺久的,可能有三四个小时(还是在看了一点wp,知道是解方程之后才完成的。)不过比赛的时候,可能不会这么顺利,因为会想着把东西dump出来,或者是卡在加减乘除的识别上面。还是做题少了

    本文作者:Xunflash
    本文链接:https://xunflash.top/index.php/archives/RELOADER-1.html
    最后修改时间:2022-08-10 14:24:59
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    114514
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    已有 2 条评论
    匿名用户
    2022-07-29 10:40
    感谢分享,赞一个
    小迷妹
    2022-07-11 21:12
    牛哇