攻防世界-csaw2013reversing2

20 篇文章 1 订阅
18 篇文章 1 订阅

无壳程序

IDA静态分析

找到main函数
![image.png](https://img-blog.csdnimg.cn/img_convert/d937d85acd09e34b9ae05d2e9e3d68e2.png#clientId=ufefc85f1-ac53-4&from=paste&height=426&id=u7c49415e&margin=[object Object]&name=image.png&originHeight=426&originWidth=1211&originalType=binary&ratio=1&size=30012&status=done&style=none&taskId=u04c87690-2c33-4a8f-83a8-30e87b541ad&width=1211)
看到弹窗 但是可以知道的是这个函数是IsDebuggerPresent()判断是否到调试器内
所以最终我们看到的加密函数影应该是
sub_401000()这个函数
所以我们打开这个函数
![image.png](https://img-blog.csdnimg.cn/img_convert/01f9042bc909c65f086bd3a5777b657e.png#clientId=ufefc85f1-ac53-4&from=paste&height=422&id=u15763db1&margin=[object Object]&name=image.png&originHeight=422&originWidth=1246&originalType=binary&ratio=1&size=23305&status=done&style=none&taskId=ub15117db-c3f3-4eb1-87b5-d848d5a9d04&width=1246)
其中一个数组是![image.png](https://img-blog.csdnimg.cn/img_convert/4f551a05ed3c305a5d92e221d67a2014.png#clientId=ufefc85f1-ac53-4&from=paste&height=382&id=u12e5ecad&margin=[object Object]&name=image.png&originHeight=382&originWidth=1034&originalType=binary&ratio=1&size=36386&status=done&style=none&taskId=u3c11ce27-dfe5-41ee-a5ad-88cde2bcfb8&width=1034)
那么我们需要找另外与之异或的数组,经过分析我们可以知道lpMem这个变量储存的是flag
![image.png](https://img-blog.csdnimg.cn/img_convert/095002f837c3a706ee9462b61ede018a.png#clientId=ufefc85f1-ac53-4&from=paste&height=494&id=u213d439e&margin=[object Object]&name=image.png&originHeight=494&originWidth=1149&originalType=binary&ratio=1&size=33317&status=done&style=none&taskId=u8d5477e8-1373-4658-8bd9-cb137c984f9&width=1149)
我们可以看到HeapAlloc()函数分配内存与Memcpy_s函数 拷贝内容函数
那么具体数组就是在unk_400B10变量里面 所以我们dump数据下来

EXP

str1 = [0xBB, 0xCC, 0xA0, 0xBC, 0xDC, 0xD1, 0xBE, 0xB8, 0xCD, 0xCF, 
  0xBE, 0xAE, 0xD2, 0xC4, 0xAB, 0x82, 0xD2, 0xD9, 0x93, 0xB3, 
  0xD4, 0xDE, 0x93, 0xA9, 0xD3, 0xCB, 0xB8, 0x82, 0xD3, 0xCB, 
  0xBE, 0xB9, 0x9A, 0xD7, 0xCC, 0xDD]
str2 = [0xBB, 0xAA, 0xCC, 0xDD]
flag = ''
for i in range(len(str1)):
  flag+= chr(str1[i] ^ str2[i%4])
print(flag)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值