香山杯Reverse URL从哪里来_ WP详解

文章目录

查壳

在这里插入图片描述
无壳,32bit文件,vc++编写的

分析

在这里插入图片描述
都是些函数,一开始以为是内存资源解密,动态调试或者找到e_ou资源里的数据进行异或;
在这里插入图片描述
在这里插入图片描述
发现不是,接着往下面看,
在这里插入图片描述
这里解释一下,

  • GetTempPathA为检索为临时文件指定的目录的路径,路径长度限制为0x104u,存放在Buffer里面;
  • GetTempFileNameA,是在Buffer路径下创建一个名为ou.exe的临时文件;
  • fopen打开指定文件写入某些东西;

点击Buffer,
在这里插入图片描述

还是需要动调一下,用Local windows试试,断点先下在读取文件路径并创建文件后
在这里插入图片描述

再次点击Buffer,
在这里插入图片描述

这次就有文件路径了,根据文件路径找到文件

在这里插入图片描述

找到了,不过这里还是0kb说明还没有开始写入,回IDAF8单步一下,

在这里插入图片描述
好了,再查一下壳看看文件信息
在这里插入图片描述
用IDA打开看看
在这里插入图片描述
这里sub_401110是个base64解密,根据上面的v3[i]-30就可以完成了。下面还有一些,不晓得是啥,可能是干扰吧。
写个exp

import base64

enc = [
    0x78, 0x8B, 0x96, 0x86, 0x78, 0x51, 0x91, 0x50, 0x6C, 0x62, 0x77, 0x53,
    0x6C, 0x88, 0x63, 0x50, 0x78, 0x71, 0x4E, 0x50, 0x6B, 0x98, 0x77, 0x53,
    0x6A, 0x72, 0x77, 0x97, 0x6C, 0x8B, 0x77, 0x92, 0x6C, 0x98, 0x63, 0x50,
    0x6D, 0x71, 0x4E, 0x51, 0x6C, 0x62, 0x77, 0x96, 0x6C, 0x98, 0x5F, 0x50,
    0x6B, 0x72, 0x81, 0x51, 0x6C, 0x88, 0x64, 0x57
]
# -30
ascii_str = ''.join([chr(byte - 0x1E) for byte in enc])

flag = base64.b64decode(ascii_str)

print(flag)
# b'flag{6469616e-6369-626f-7169-746170617761}'

好啦。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sciurdae.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值