标签:逆向 代表 函数 eax 字符串 v9 2.1 IDA 刷题
2.1【欢乐向】逆向刷题被虐哭日常记录
前面好多题之前做了也没记录,懒得整了,直接从剩下的几个开始:
Getit
这一段是解密的关键,后面的是把flag写入文档又给删了。
其实可以修改程序逻辑让他别删,但是我不会。
逆着来推一边,不会写py,用c写个。
?不应当,我大概是忘了加括号。
???我觉得我的没啥问题,去网上查了查相关的:
在IDA里没看到有S,咱也不知道咋回事。
no-strings-attached
直接扔IDA瞅瞅:
挨个函数筛,筛出最后一个有、东西。
有个叫decrypt的函数,看起来像是加密函数,去gdb里下个断点看看。
r运行,n单步走。
中间那一大坨大概是没设置好,现学gdb怎么用先不管了。
查内存找字符串,
加密好的东西放进了寄存器eax里:
翻翻寄存器里的东西,找到第一个0x00结尾的是字符串的结尾。
x:就是用来查看内存中数值的,后面的200代表查看多少个,wx代表是以word字节查看看,$eax代表的eax寄存器中的值
在这里我们看到0x00000000,这就证明这个字符串结束了,因为,在C中,代表字符串结尾的就是"\0",那么前面的就是经过decrypt函数生成的falg
C:按字符格式显示,把这些十六进制的换成好看一点的。
python-trade:
Pyc文件,网页反编译一下:https://tool.lu/pyc/
。
翻译翻译,这堆字母让我们输入一串字符串,然后经过encode函数一系列操作之后和correct比较,正确了就算是输对了flag。
那咱们就反其道而行之。
先给他把correct给base64解密了。
完事了之后在逆着走一遍。
再次被自己菜哭,我觉得没啥问题咋就不给我过?
又上网查了查,去评论转了一圈,发现有人说可能是base64解码的问题,我用的网页解码,不应该有差才对的,怪事。
补上了几个字符然后过了,正确的是这个:nctf{d3c0mpil1n9_PyC}
Maze
题目给的叫迷宫,运行了一下也没啥东西,扔进ida看看:
看起来像是四个字符:0oO.
其实在IDA里把光标选择ASCII码按R键就可以把ASCII码变成字符了。
然后这几个是坐标移动
v9是一个二维数组,用来控制上下和左右这两种方向的。
两种可能:
1.v9代表横向、&v9+1代表竖向
2.v9代表竖向、&v9+1代表横向
反正是诶个试过去了
从左上角到#,经历→↓→→↓↓←↓↓↓→→→→↑↑←←,转换为o0oo00O000oooo..OO
Flag:nctf{o0oo00O000oooo..OO}
好像是南邮的题吧...真厉害。
还剩一个比较难搞,明天继续。
标签:逆向,代表,函数,eax,字符串,v9,2.1,IDA,刷题 来源: https://www.cnblogs.com/DorinXL/p/12250344.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。