Bingo.png图片逆向分析
2021-06-24 18:59:00 Author: mp.weixin.qq.com(查看原文) 阅读量:76 收藏

本文为看雪论坛优秀文章
看雪论坛作者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
官方微博:看雪安全
商务合作:[email protected]

球分享

球点赞

球在看

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


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458387168&idx=2&sn=b7ff8510c4c080fd149b76e6da7a0817&chksm=b18f326a86f8bb7c839d73eb1c0b52a0fa2d0131813181efa7a2f79314798a525a0648eac9e5#rd
如有侵权请联系:admin#unsafe.sh