本文已参与「新人创作礼」活动,一起开启掘金创作之路。
reverse2
刚刚下载了这个文件之后,突然发现是没有任何后缀名的文件,所以....笔记本干它!用笔记本打开一下:
发现有个长的贼像flag的东西,所以把这个东西输进去!!!结果,结果,果不其然是错的...我就知道不会这么简单,所以好是老老实实的用ida吧,用ida还发现是一个64位的,刚开始用错了,不过没关系,我们至少知道了一个类似于flag的东西,打开之后,就可以先搜一下flag或者直接搜我们刚才找到的‘flag’,真正的flag一定是在{}之间的字母进行了某种变换,有了这个思路,我们就可以重点找到这个核心的代码(伪代码);上图吧!
拖到ida64之后,找到main函数,里面发现一个flag,flag是一个数组;
点开flag之后,果然是这样!!!(红圈的地方原本是一个78h,按一下r变成字符)
找到了flag的原始值(或者直接不要上面的这些,直接根据笔记本中得到的flag),然后看一下伪代码是什么,找到核心的变换
结果第一眼发现那什么pid,_readsqword都不知道是什么,但是!那个for循环里面有点东西,从0到结束,我们大胆的猜一下,前面那么多,都是没用的,就是为了读入flag,而核心代码是这个for,而flag是字符,所以我要把这些数字都变成字符模式,变换之后是这样的:
if里面的东西就是flag[i]因为那样表示是地址的样式,这个在之前我博客中,cg那个博客里面有解释,所以这个核心就很明确了,遇见i和r变成1,那么flag就出来了,老flag是{hacking_for_fun},而新的flag是 {hack1ng_fo1_fun},ok!完工
大白
这是一个比较简单的隐写类型的题,作为小白的我当然需要查一下资料啊,比如什么是隐写,隐写的用处,查完之后,发现隐写确确实实好用,想要发送个东西,我就可以把一些想发的东西加到一个无关的地方,这样即使别人偶然间知道了我发的东西,那么别人也我无法找到我到底要发送的是那一个;
话不多说,我们一起来看一下这道题;
首先,图片是一个大白的图片,初步一看没什么异常,但是对于学习这一块的人来说,没有异常也要想一下哪里有可能有异常,更何况这里本来就有异常呢~对于一个可以打开的图片,我们可以想一下,是不是图片的大小更改了,或者图片的方向暗含着什么,又或者图片的内容也提示着什么,所以这个大白的图片,是png格式的;
只有半个身子,所以看一下是不是下面东西,先用winhex打开一下;
看不懂......然后去网上找一下png的数据块,发现了IHDR后面的是长和高,那么我就把我鼠标放的那个地方的0改成了2
然后保存,退出,查看大白,发现flag(不过图片确实调的太大了)