avatar

CTF-实验吧-Re-bitwise

下载压缩包 bitwise.rar
解压后有如下文件

打开 bitwise.py 和 bitewise.java 看一下源码

发现代码的作用是一样的

关键代码且很明白的写在源码里面了

1
2
verify_arr = [193, 35, 9, 33, 1, 9, 3, 33, 9, 225]
user_arr.append( (((ord(char) << 5) | (ord(char) >> 3)) ^ 111) & 255 )

简单来说就是:

1.假码必须是10位

2.假码通过 ((ord(char) << 5) | (ord(char) >> 3)) ^ 111) & 255 运算后符合verify_arr的内容

那么我们有一个简单粗暴的思路

因为我们输入的是ascii码,而ascii码我们可以输入的范围大概是在0x20-0x7E

所以我们直接for循环0x20-0x7E范围内的字符,然后运算和真码进行比较,如果是正确的且唯一的话,就会输出出来

具体效果如下

代码我也直接贴出来了

1
2
3
4
5
6
7
8
verify_arr = [193, 35, 9, 33, 1, 9, 3, 33, 9, 225]
user_arr = []
p = ''
for j in range(0,10):
for i in range(0x00,255):
if( (((i << 5) | (i >> 3)) ^ 111) & 255 == verify_arr[j] ):
p += chr(i)
print(p)
文章作者: 咲夜南梦
文章链接: http://yoursite.com/2018/11/09/CTF-%E5%AE%9E%E9%AA%8C%E5%90%A7-Re-bitwise/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咲夜南梦's 博客
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论