攻防世界Windows_Reverse1
攻防世界Windows_Reverse1
分析
首先去查壳,32位的UPX壳
然后脱壳
接着放入IDA中分析
这里的if语句是与v4进行比较,并且发现只有14行是函数,进去看看v6在函数中会与v4有什么关系
看到12行能知道v4的地址是由a1和v1的地址相减得到的,15行这里的v1[v4]相当于是v1+v4也就是a1,对byte_402FF8进行索引,然后去看看byte_402FF8里的东西
发现是?,里头的东西没有出现
然后去看了别人的WP知道了ASCII编码表里的可视字符就得是32往后的,所以32以前的都不会被索引到,往下数32的地址
这里就是内容了,然后写脚本
脚本
a = [ 0x7E, 0x7D, 0x7C, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x73, 0x72, 0x71, |
关键点
这题不是很难,最重要的是这里有新的知识了!
这题我看见别人能用OD进行动调,我本来想着先用IDA看看动调怎么样,结果直接给我报错
然后我才晓得了程序开启了ASLR(, 出题人又在程序中采用了绝对地址的方式,所以看不到程序的正常运行,所以要关掉它
这里用的是StudyPE
将这里的8140改成8100即可,这相当于是将这个PE文件的IMAGE_OPTIONAL_HEADER DllCharacteristics中的IMAGE_DLLCHARACTERIS TICS_DYNAMIC_BASE标志去掉
然后我用的IDA测试的,发现能调试了。用OD调试也能找到a数组中的东西
大佬们tql
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 逆向上分之路!
评论