首页
社区
课程
招聘
[原创]Bingo.png图片逆向分析
发表于: 2021-6-17 20:01 15895

[原创]Bingo.png图片逆向分析

2021-6-17 20:01
15895

 

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字符,


 

吆西,可以执行了,但出来的是黑框,直接跳掉,太可怕了,咋整。


 

4、看来EXE本体也病的不清,OD载入看看,发现有壳的痕迹,点确定继续


 


 

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

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

经过N次分析后发现,这个XOR应该是再解压缩壳,但是这个段代码没有写全,尝试补全,刚开始被

0044D017  - E9 C4BBFBFF     jmp 1.00408BE0

这个误导了,以为入口地址OEP不对而已,走了不少弯路。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2021-6-25 20:58 被yiting编辑 ,原因: 附件重新上传
上传的附件:
收藏
免费 9
支持
分享
最新回复 (11)
雪    币: 12857
活跃值: (9172)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
2
老二次元了
2021-6-18 10:14
0
雪    币: 1041
活跃值: (733)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ida按f5反编译没效果
2021-6-20 11:34
0
雪    币: 245
活跃值: (469)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
鸭子咯咯哒 ida按f5反编译没效果
记得要简单脱壳的
2021-6-25 08:10
0
雪    币: 151
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
。。。你是把附件图片里面PE数据删掉了嘛
2021-6-25 11:49
0
雪    币: 676
活跃值: (957)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
6
楼主是把干净的图传上来了?
2021-6-25 12:50
0
雪    币: 245
活跃值: (469)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
trackL 楼主是把干净的图传上来了?
附件已经重新上传了 
2021-6-25 20:58
0
雪    币: 245
活跃值: (469)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
every_thing 。。。你是把附件图片里面PE数据删掉了嘛[em_35]
附件已经重新上传了 
2021-6-25 20:59
0
雪    币: 676
活跃值: (957)
能力值: ( LV4,RANK:42 )
在线值:
发帖
回帖
粉丝
9
关于还原代码的部分,能劳驾具体说说吗?尝试了几种方法依然无法实现
2021-6-26 17:56
0
雪    币: 245
活跃值: (469)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
trackL 关于还原代码的部分,能劳驾具体说说吗?尝试了几种方法依然无法实现
还原代码吗? 有修复PE了吗?  修复之后执行到入口点,DUMP下来,修正一下入口点就可以了。 相当于手工脱壳。
2021-6-27 20:29
0
雪    币: 245
活跃值: (469)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
trackL 关于还原代码的部分,能劳驾具体说说吗?尝试了几种方法依然无法实现
用OD在入口点DUMP,或者用LOAD_PE保存都可以的,IAT应该好的,不用修复的。 
2021-6-27 20:31
0
雪    币: 151
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
代码还原就一个功能,将RVA1000处的text段,大小3E000的数据用0x22异或解密,最后跳到原始入口点408BE0(这块汇编指令楼主已经贴出来了)。异或解密完后跳转到原始入口点408BE0用脱壳的方法dump保存即可。。。(本萌新第一次发言
2021-6-28 21:54
3
游客
登录 | 注册 方可回帖
返回
//