浅试水记录几个低难度的题目,后面的题慢慢做吧
文件名baby_gay.elf无壳丢入ida,找到主要函数 函数主要逻辑获取输入v4,对输入通过verifyPwd()函数验证跟进查看验证函数,函数返回输入和字符串”ZGFuaXU=”的比较结果 如果相同则输出“关键信息”:Gif4BdadxXkMLA6CXdipU3dnesRGYMzuio/D48HJ+rQ= 不明白怎么看出来,网上找资料才知道是RC4,带入上述关键字作为秘钥可以解密
主函数 找到16进制字符串用字符显示,小端序拼接获得flagctfshow{re_sign_is_easy_}
找到main函数 Sub_219B为md5加密,直接逆向按位运算或S2字符串md5解密获得flag ctfshow{7x_flag_is_here}
文件flag.exe查壳发现是UPX 直接脱壳后丢入ida,根据ui功能界面判断程序通过text获取输入,点击按钮进行验证,然后通过massagebox进行输出提示,从函数或者字符串找到验证函数 根据程序验证输入正确
Re3.pyc在线反编译或者uncompyle6获取源码如下 获取关键字符串BozjB3vlZ3ThBn9bZ2jhOH93ZaH9,字符串经过两次编码,第一部分为base64,第二部分为凯撒密码,逆向解密获得flag
文件:re364位elf文件,无壳丢入ida找到关键函数并分析如图 程序获取到输入的4个参数后将输入转化为16进制并进行运算,得到新的4个参数v4,v10,v11,v12,通过f()函数把f4映射为f9跟进f(),传入参数v4是一个1-200的数,然后进行for循环,循环到v4结束 循环内算法简单,结果v9为前两位数的加和,即斐波那契数列,v9为数列第v4位回到主函数,后续做4次if验证,对应了4个方程 加上斐波那契数列的映射方程,可以得到以下方程组 简单运算可得到以下关系:v4 +3 * v9 = 0x19D024E75FF,根据映射关系解出v9、v4,这里有两个思路:一个是用数学方法硬算从数字上v4是1-200的一个数,远小于v9,故可以直接使用加和结果除以3估算v9为591286729898,在线斐波那契数列生成网生成1-200的数列,然后进行对比发现可以对应第58项 即v4 = 58,v9 = 591286729879,转16进制带入其他方程可以得到其他参数值:argv1 = V10 = 0x666C61677Bargv2 = V11 = 0x6E65776265argv3 = V12 = 0x655F686572argv4 = 58 + 0x6543 = 0x657d拼接后解码hex可得flag 第二个思路是爆破爆破斐波那契数列的每一项,直到满足v4 +3 * v9 = 0x19D024E75FF,再顺序计算其他参数,脚本如下: 输出验证结果同上
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)