查看原文
其他

Bingo.png图片逆向分析

yiting 看雪学苑 2022-07-01
本文为看雪论坛优秀文章
看雪论坛作者ID:yiting




1


题意分析

此题题目叫做勾股定理,看来算法和这个应该是有关系的,附件下载下来是一个可爱的妹纸的图片,bingo.png,大小为1.82M,这么小一个图片,竟然有这么胖的体积,肯定不正常,里面包含了文件了。用winhex打开一看,PNG头图片文件,简单的拖了一下,有2大段EE和22的数据,感觉嫌疑比较大隐藏文件在其中。


 


2


提取EXE文件


既然是有PNG文件,那么PNG文件结尾是什么?百度一下看看:
49454E44AE426082结束,winhex里面查找一下看看,果然发现了,后面带送了一个MZ打头的文件,不就是一个EXE文件头吗?看来有戏。
把MZ开始的地址188748开始到最后复制出来,生成一个exe文件。

  


3


修复PE头文件


生成出来的EXE文件是无法执行的,但是DOS却可以执行。在DOSBOX下执行结果是一个勾股定理的公式。这个提示应该不可能是FLAG,完全没有用。
 
看来要修复PE头文件,使用LOADPE打开发现是无效的头文件,看来病的不清,要动大手术了。

 查看PE头文件资料得知:
000000E8,是指向PE头的,查看一下E8,发现E8是空的,原来是改掉了,手工加上试试:

填充5045 PE字样,MAGIC字符:
可以执行了,但出来的是黑框,直接跳掉,太可怕了,怎么办?
看来EXE本体也病的不清,OD载入看看,发现有壳的痕迹,点确定继续。

入口点在44D000,执行后直接退出,这里花了不少时间分析。

发现执行到这一句就挂了。


经过N次分析后发现,这个XOR应该是再解压缩壳,但是这个段代码没有写全,尝试补全,刚开始被0044D017  - E9 C4BBFBFF     jmp 1.00408BE0这个误导了,以为入口地址OEP不对而已,走了不少弯路。


我们再回到刚才的EE和22大段的地方,还记得吗?联系起来一想,我们很快就能发现,这小子在还原代码呀,我们再看一下代码段,是不是对上了?

 
我再看一下WINHEX:
 
发现应该是EE为XOR的加密代码,直接写代码还原吧。(截图错了,应该是 Xor byte ptr ds:[ebx],0xEE)

最终大致是这样的结果:
发现可以执行了。
毕达哥拉斯到底说了什么,我很好奇!百度了一下,以为是怪兽呢,原来是一个数学家,反正也不认真。直接IDA开干。



4


勾股定理算法


拖入IDA,F5,代码很简单,但是没有FLAG,发现了和一个特殊字符串比较,难道这个就是FLAG,"zaciWjV!Xm[_XSqeThmegndq"?可惜不是,我尝试提交,错了。


 
看来还得搞算法,方法倒是看着很简单,还原起来不太好操作,还有+0.5是什么,难道IDA搞错了?先分析一下,果然是2个POW,勾股定理啊,到时候很符合题意。
 
v0 = sub_401005(&v2, 52);


 


5


编写逆向算法


本人水平很烂,花了不少时间,终于写出来了,其中就是0.5想了半天,不知何意。猜测多次后,成功了,过程也是蛮简单的。直接用C写了一个:
 
#include <stdio.h>#include <string.h>#include <cmath>int main(){ char str1[] = "zaciWjV!Xm[_XSqeThmegndq"; int v7 = strlen(str1); char v6[25] = { '\0' }; memset(v6, 0, v7 + 1); int c = 52 - v7+1; //_strrev(str1); for (int i =0; i < v7; i++) { //_strrev(str1); char tmp = str1[0]; _strrev(str1); str1[v7 - 1 - i] = '\0'; int y = pow(c, 2.0); int z = pow((double)tmp,2.0) + y; int zz = int((double)sqrt(z)+0.5); v6[v7 - 1 - i] = zz; c++; } printf("The reverse string of str1 is: %s\n", v6);
}

 跑出结果:

 
整个分析花一整天,也是学习到了不少基础知识。这个涉及的逆向知识还挺多的,记录一下。




- End -




 


看雪ID:yiting

https://bbs.pediy.com/user-home-29234.htm

  *本文由看雪论坛 yiting 原创,转载请注明来自看雪社区


《安卓高级研修班》2021年秋季班火热招生中!



# 往期推荐





公众号ID:ikanxue
官方微博:看雪安全
商务合作:wsc@kanxue.com



球分享

球点赞

球在看



点击“阅读原文”,了解更多!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存