第二次逆向题解
话不多说,直接开始
xor
下载下来有一个xor
的无后缀文件和一个叫_MACOSX
的文件夹,里面是一个叫._xor
的文件,先查壳
._xor
是一个二进制文件,就不放截图了省内存
用ida打开xor
文件
用notepad–打开._xor
文件
二进制文件有点意义不明,先看主函数,还是熟悉的strncmp
函数,可以看到,输入的字符串是_b
从前面的程序可以看出flag长度为33,输入的字符串每一个字符跟前一个字符异或后才跟global
比较,这个字符串的值也很好找,直接点就行
因为一按截图键窗口就没了,所以只能用手机拍照
那么接下来只要找出符合的输入就行了,因为异或的自反性,要还原一个字符只需将其与前一个字符异或即可
最终flag为QianQiuWanDai_YiTongJiangHu
不得不说,这个global
字符串是真的抽象,一堆转义,眼睛都要看瞎了……
所以那个二进制文件到底有什么用
helloword
是不是少了个l
下载下来一个apk文件,用jadx打开,找主函数,直接就能看到flag,虽然看不懂java
reverse3
之前写过了,偷个懒
不一样的flag
一个exe文件,先查壳,少见的32位应用,无壳。直接打开
大概翻译一下,一个while循环不断输入一个数字,根据输入改变相应的值,以达到最终结果,所以一步一步的走就行了
然后……就不会了
从题解来看,这题是一个走迷宫题目,迷宫就是v3
字符串的内容,即
1 | *1111 |
数字对应走法,题目中已经给出了提示,走迷宫就行
flag为222441144222
写这题是困扰我最久的就是为什么最后判定时用v7字符串数组坐标要-41,因为栈的生长方向是自顶向下,那么先定义的v3字符串地址应该比v7要大,如果以v3为基准引用v7的元素应该是+41,最后在网上找到了解答
由于栈溢出的保护机制,入栈顺序与定义顺序相反,所以后定义的v7地址反而比v3要大,这样就说得通了。
虽然其实可以直接从声明后面的注释看出地址其实看不懂,但知道原因总是好的
SimpleRev
先查壳,64位无壳,直接打开
题目的主函数逐渐开始意义不明……好像找不到什么有用的信息,先看看decty
函数和Exit
函数
然后再decry
函数里看到了一句Congratulation,不出意外的话到这里就说明找到flag了(Exit
函数里啥都没有,应该是没用的)
再看回前面,好像没有什么看不懂的地方,直接暴力写出所有变量
经过前面一些语句的运行,key
字符串为adsfkslcdn
,text
字符串变为killswodah
再看后面的输入的部分,输入回车(10)时退出循环开始判定,空格(32)时v2++,然后就是类似解码的过程,根据输入的字符和key
字符串构造最后用来比较的字符串,只需一步一步来
(因为没看懂有什么特殊含义,就直接暴力了)
最终flag为KLDQCOZFDU
然后就错了……
原因:数据存储方式分为大端序和小端序两种,x86架构(常见)采用小端序,即将低位数据存储在低地址处,powerPC架构(不常见)、网络协议采用大端序,跟小端序相反。如果是存储字符串那么两者没有区别(字符串开头地址较低),但若是存储其他的大于一字节的数据,那么就会不一样。比如存储short(在现在的电脑上一般为4字节,为了方便当成2字节)类型的100000000 00000001
,那么在小端序中存储就是00000000 00000001
,而大端序则为00000001 00000000
(按地址从高到低算)。而题目中对字符串进行赋值时在后面加了LL
(看到了,但不知道有什么区别),即转化为long long型,所以按小端序存储即为77 6F 64 61 68
,而字符串是从低到高看,所以转化为字符串应为68 61 64 6F 77
,也就是倒过来,正确的key
为adsfkndcls
,text
为killshadow
,改了之后程序就能运行出正确的flag,为KLDQCUDFZO
。
(这鬼设定卡我一晚上,吐了🤮)
JAVA逆向解密
先查壳(虽然不知道需不需要)
用jadx打开
根本看不懂java……
在同为计算机系的兄弟的帮助下,大概知道了意思,就是输入字符串,改变一下跟key
比较,直接编程就行
最终flag为This_is_the_flag_!
[GXYCTF2019]luck_guy
查壳,64位无壳,直接打开
主函数没有有用信息,但可以找到一个get_flag
函数,可以猜测这个函数是关键
其中,rand
函数用于生成伪随机数,f1
可以直接找到,为GXY{do_not_
,f2在case4
中被赋值,在case5
中被改变,而flags
由f1 f2
拼接而成,只要敲个代码就行(同样由于小端序存储,字符串要倒过来)
最终flag为do_not_hate_me
结语
肝不动了😵