实验吧逆向工程-bitwise

题目下载链接:http://ctf5.shiyanbar.com/reverse/bitwise/bitwise.rar
上来又是一堆英文,其实也挺有趣,逗你一下,让你开心一些。
英文意思为:
你看到loading bay的门,但它们被锁定了。 但是,你可以从控制面板中提取密码验证程序...你是否可以找到密码才能访问loading bay?
先下载题目压缩包看看吧。
解压后有一个java文件和一个python文件,神奇
1、先看python吧,这是体重给的python代码:

#!/usr/bin/env python

user_submitted = raw_input("Enter Password: ")

if len(user_submitted) != 10:
  print "Wrong"
  exit()


verify_arr = [193, 35, 9, 33, 1, 9, 3, 33, 9, 225]
user_arr = []
for char in user_submitted:
  # '<<' is left bit shift
  # '>>' is right bit shift
  # '|' is bit-wise or
  # '^' is bit-wise xor
  # '&' is bit-wise and
  user_arr.append( (((ord(char) << 5) | (ord(char) >> 3)) ^ 111) & 255 )

if (user_arr == verify_arr):
  print "Success"
else:
  print "Wrong"

好像就是一个反向解密?感觉如同密码学啊。。

2、直接再写一个python自动化解密吧,首先是暴力破解,ord函数是字符转ASCII码,chr函数为ASCII码转字符。

verify_arr = [193, 35, 9, 33, 1, 9, 3, 33, 9, 225]
user_arr = [0,0,0,0,0,0,0,0,0,0]
for i in range(10):
    for j in range(128):
        if (verify_arr[i] ==  (((j << 5) | (j >> 3)) ^ 111) & 255):
            user_arr[i] = j
flag = ''
for i in user_arr:
    flag += chr(i)  #转换成字符
print(flag)

3、再根据处理的顺序反写一个解密吧。

(((ord(char) << 5) | (ord(char) >> 3)) ^ 111) & 255

首先把字符转为ASCII码值,进行二进制操作,左移五位与右移三位的值求或,再与111取异或,最后在与255(11111111)取与。
那就把这个语句反向一下:
(1)与255(11111111)取与是取低8位。
(2)与111异或得的值再异或一次可以返回。
(3)左移五位后补5个0,右移三位后前补3个0,所以或为0,不对中间值起作用(相当于相加)。

verify_arr = [193, 35, 9, 33, 1, 9, 3, 33, 9, 225]
flag = ''
for i in verify_arr:
    flag += chr(((i^111)>>5)|((i^111)<<3)&255)
print(flag)

4、java是一样的思想,就是换一种语言写。

小结:今天的题也不算难,属于汇编基本知识的应用,基础还是很重要啊。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0x01 目录 常见编码: ASCII编码 Base64/32/16编码 shellcode编码 Quoted-p...
    H0f_9阅读 14,510评论 2 17
  • CTF中那些脑洞大开的编码和加密 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问...
    查无此人asdasd阅读 11,334评论 0 19
  • 前言 Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打...
    依依玖玥阅读 8,935评论 6 37
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,828评论 0 5
  • 自然之道本无为, 若执无为便有为。 得意忘言方了彻, 泥形执象转昏迷。 身心静定包天地, 神气冲和会坎离。 料想这...
    宗林的李阅读 3,294评论 3 2