181105 逆向-DHB(re+easy_pyc)

随手写的用来应付提交的WP╮(╯_╰)╭想想其实也没啥需要细写的,有不懂的童鞋在评论里留言吧~我会尽快回复的XD见谅啦

easy_py

直接反编译提示元组下标越界
用010模版看了一下,几个data都没有问题
那么问题只可能出在code里了

简单扫了一下发现头部有一个64 23 33,这是指令(64)+数据(23 33)的格式。由于py的字节码中引用data都是通过下标来操作的,一般来讲是从0开始。观察其他几个64后的值都是00 00,00 01一类的,所以这里大概率就是越界的数值了。以及这个23 33比较嘲讽233
先将它改成00 00再次进行反编译,发现能出现完整的反汇编了。但是还是无法解析成源代码
​​
头部的反汇编是几个蜜汁跳转,以及那个下标越界的指令被跳过了,保证了pyc能正确执行
而这蜜汁跳转是正常编译中不会出现的,因此无法反编译

将前9个字节删去即可(注意还有code段的长度0xb2也要相应的减小)

cmp = [0, 10, 7, 1, 29, 14, 7, 22, 22, 31, 57, 30, 9, 52, 27]
flag = raw_input()
m = 0
for i in flag:
   i = ~ord(i) & 102 | ord(i) & -103
   if i == cmp[m]:
       m = -(-m + -1)
       continue
   else:
       print 'wrong'
       exit()

print 'right'

很简单的逐字节变换

cmp &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值