最近的练习
随便扒拉来的题目
where_this_from.exe
刚拿到这题,直接给干重启
麻了

检查一下,需要输入两样东西
一个是user name
另一个是 key
而题中很多函数是无法识别的,内部由this函数组成
推测为ida对结构体的解析不全
先对整体函数进行简单分析一下
动调跑起来
Fail接了一个函数
具体为创建一个dat文件
写入能让你shutdown的指令
然后电脑就重启力,打个断点绕一绕

在ida里面看见了try 的注释,我一开始以为是seh,但是并没有看到对应的exception或者是finally块
老老实实看代码

上半部解析完成之后
发现整体的流程大概是
通过一系列变化生成中间string ,储存在v41,然后将nomoney转为数组存储在v39
对key进行一轮异或
最后对key和v36进行对比
v41和,nomoney都是可以直接用ida提取出来的

v36的值可以通过动调直接提取
1 | [0x51, 0x3C, 0x0F, 0x67, 0x5C, 0x2C, 0x41, 0x53, 0x6A, 0x49, 0x70, 0x51, 0x68, 0x54, 0x2B, 0x23, 0x5B, 0x64, 0x0E, 0x60, 0x6A, 0x43, 0x69, 0x46, 0x69, 0x0C, 0x25, 0x41, 0x72, 0x44, 0x16, 0x72] |
写脚本试试
1 | #生成key的data |
因为一开始是倒叙加密的
所以这里正着来的时候要对没有进行处理的数组顺序取反
保证异或顺序准确
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 kiki的博客!
