0%

解密脚本----关注sc谢谢喵

2024-09-04 07:08By
Reisen
自定义逻辑Base64算法分析PythonREVERSE

Problem: [HGAME 2023 week1]encode
f5后:NSSIMAGE
加密代码是将每一个字母的arcii码的高四位和低四位进行拆分后丢进v4中,所以逆向只要把低四位和高四位还原后相加就是原来的arcii码了

加密串在dword_403000里NSSIMAGE
可以查看他的hex表,比较好复制NSSIMAGE
复制下来把0去掉会得到一堆不好看的数字,我下面的脚本有讲这串数字提取到一个表中的正则表达式操作

import re flag=''' 8 6 7 6 1 6 13 6 5 6 11 7 5 6 14 6 3 6 15 6 4 6 5 6 15 5 9 6 3 7 15 5 5 6 1 6 3 7 9 7 15 5 6 6 15 6 2 7 15 5 1 6 15 5 2 7 5 6 6 7 5 6 2 7 3 7 5 6 15 5 5 6 14 6 7 6 9 6 14 6 5 6 5 6 2 7 13 7 ''' #这是把一大串的数字加进一个表中的操作 result=re.findall(r"\d+\.?\d*",flag) print(result) final='' for i in range(len(result)//2): final+=chr((int(result[2*i+1])<<4)+(int(result[2*i]))) print(final)

最后我写了一个在python中加密解密的脚本,可能会比较容易弄清楚逻辑一点

str='nssctf' #加密操作 result=[] for i in range(len(str)): result.append(ord(str[i]) & 0xf) #与0x1111进行与操作,提取低四位 result.append((ord(str[i])>>4) & 0xf) #向右移提取高四位 print(result) flag='' #解密操作 for i in range(len(result)//2): #将低四位int和将高四位向左移四位后相加,即可还原 flag+=chr(int(result[2*i])+int(result[2*i+1]<<4)) print(flag)
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论

原来是在提取高四位和低四位,我就说下面加起来是什么意思,终于看懂了

加载中...