首页 >> 大全

171220 逆向-i春秋【迎圣诞】-NoExec

2023-12-24 大全 30 作者:考证青年

1625-5 王子昂 总结《2017年12月20日》 【连续第446天总结】

A. i春秋【迎圣诞】-

B.

后缀名写着exe,却不能运行~

用打开分析一下

发现NT头有很明显的问题

应该是50 45 00 00,被改为了HA

后面一个HA很明显也是后加的,查询一下发现这里是,表示使用的处理器

正确的值应该为4C 01,即i386 - 332

修改以后发现还是不能运行,继续检查

想起来DOS头里有一个重要的值:,它表示了NE头的偏移

原值为00 01 00 00,很明显是错的,改正为10 01 00 00(0x110)

改完发现都能识别出来它是个MFC了

然而双击以后响应了一会儿还是没东西出来

拖入OD也在加载器中就跳入SEH了,估计加载的时候还有什么错误,当时没有发现

但是知道它是MFC就有地方可以操作了:

无壳,拖入IDA,发现函数里没有好辨认的东西,查找字符串也没有可读的部分╮(╯_╰)╭

于是开始考虑从资源下手

_i春秋电影_i春秋论坛

用查看控件ID,发现确认按钮的ID为1001

于是根据ID定位按钮函数,通过IDA的搜索立即数

(结构体自己导入)

这里写图片描述

这样就找到了函数:

结构很明显

这里写图片描述

查看check函数,发现先是通过下标的奇偶将字符串切成两个

这里写图片描述

然后分别将两个字符串,再连接起来

这里写图片描述

之后大段的代码太长不想看(。

反正没有对v76操作的地方

最后可以看出来是和一个字符串比较

这里写图片描述

直接把它拖下来解b64发现不可见,说明中间还有操作

到这里就陷入了僵局

回头重新研究

发现当用IDA调试的时候会报start函数执行失败

这个提示让我茅塞顿开,节区属性的可执行属性被关闭了!

原来题目名““就给出提示了╮(╯_╰)╭奈何一直没get到

于是将代码所在节区.text的属性加上可执行(DWORD : 1)

这里写图片描述

就可以运行了!

在OD中对刚才分析的结果b64后的字符串下断,断到->中进行了操作

在IDA中大概看了一下,很复杂╮(╯_╰)╭

掏出密码学分析插件看一眼,哼,果然在这个函数里有对的调用

那这个就是DES没跑了

OD中对这个函数下断,发现它是每次截取8个字符进行DES,密钥通过对参数的观察发现是

6E 06 15 51 93 5B 07 EA

IDA中大概能看到是上面一堆复杂操作出来的….看不懂(望天

跑了一下发现这个密钥是不变的

解密出来由于是二进制值,所以还有一次转为可见字符

于是按照思路写出解密脚本:

from base64 import b64encode, b64decode
from Cryptodome.Cipher import DESk2 = [0x6E, 0x06, 0x15, 0x51, 0x93, 0x5B, 0x07, 0xEA]
key = bytes(k2)
x = DES.new(key, DES.MODE_ECB)
s = b"GcDk0SvnNA1tsmp5FCK1FpSDfUXZbhHBSPheZaixuMyzqyysOAPCPB/p7sMpmK1KZo+lPfhMZxw="
c = b64decode(s)
# 解密
p = x.decrypt(c)# 还原奇偶字符
x = b64decode(p)
y = b64decode(p[28:-4])
for i in range(37):if(i%2==0):print(chr(x[i//2]), end='')else:print(chr(y[i//2]), end='')

活动页面上写着难度为中下,不过这个题目着实难了我一会儿(:з」∠)

虽然复盘想想好像的确没有太复杂的东西,但是各种小细节还是挺麻烦的

学到和巩固了很多知识~感谢出题人和i春秋提供的题目(°∀°)ノ

C. 明日计划

加密与解密/看雪题目

tags: i春秋

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了