一个网络验证CM
这是一个Python制作的网络验证CM,已使用pyinstaller打包。破解目标是像这里所说的一样,想办法把验证请求重定向到本地,再构造合适的数据来破解。此CM的运行方式:解压后,请在“CrackMe.exe”所在目录下打开命令提示符,输入“CrackMe 密码”(不带引号),程序会给出运行结果(如果破解成功程序会提示“密码正确!”)。你需要修改这个程序目录下的1个文件,且不是exe本体来完成破解。另外,在破解时如果找不出破解位置可以使用抓包工具辅助,但不要使用改包工具。欢迎大家交流修改方法!因为文件超过了3MB所有传网盘了:
百度网盘: https://pan.baidu.com/s/1xrQtQmq0G1JAb2aEcDq4OA?pwd=52pj 提取码: 52pj
阿里云盘(自解压文件): https://www.aliyundrive.com/s/httbUGVv5NY 提取码: 52pj 本帖最后由 xqyqx 于 2023-1-14 21:25 编辑
直接用pyinstxtractor解包,得到crackme.pyc,用uncompyle6反编译:
import sys as a, requests as c
import os.path as d
try:
with open(d.join(d.dirname(d.abspath(__file__)), 'resoUrces.dlL'), 'rb') as (f):
j = f.read()
i = b''
h = 0
for g in j:
if h:
i += bytes()
else:
if g == 36:
h = 1
_ =
input = eval(bytes((112, 114, 105, 110, 116)).decode('utf-8'))
except:
raise
print('Failed to load program resources.')
a.exit(1)
else:
input(_)
def __import__(*args, **kwargs):
raise OSError(_)
try:
if len(a.argv) != 2:
input(_)
a.exit(1)
else:
passwd = a.argv
del a
input(_ + passwd)
____ = _
__ = 0
c.packages.urllib3.disable_warnings()
def ___(n):
global __
if eval(c.get((____ + f"/{n}.txt"), verify=False).text):
input(f"#{n} " + _)
__ += 2 ** n
___(0)
___(1)
___(2)
___(3)
if __ - 16 == -1:
__ += 1
if __ == 16:
input(_)
else:
input(_)
except Exception:
input(_)
可知关键字符串在resource.dll里,且当读取到0x24使用UTF-8解码(论坛自动把网址加上discuz代码了,源文件没有这个代码):
HEX:
E7BD91E7BB9CE9AA8CE8AF8120437261636B4D655C6E202020204279206C756C69756368656E675C6EE4B88DE698AFE6AF8FE4B880E68A8AE99481E983BDE883BDE794A8E992A5E58C99E68993E5BC80E380822D2D3F3F3F3F3F3F3F3F5C6E0D0A596F752063616E277420696D706F72742061206D6F64756C652062656361757365206F66207468652073656375726974792070726F626C656D0D0AE8BE93E585A5E6A0BCE5BC8FE99499E8AFAFEFBC810D0AE4BDA0E8BE93E585A5E79A84E5AF86E7A081EFBC9A0D0A68747470733A2F2F706561736F66742E6769746875622E696F2F646C2F637261636B6D65310D0AE6A380E6B58BE9809AE8BF870D0AE5AF86E7A081E6ADA3E7A1AEEFBC810D0AE5AF86E7A081E99499E8AFAFEFBC810D0AE7A88BE5BA8FE9AA8CE8AF81E587BAE99499EFBC8CE8AFB7E9878DE8AF95EFBC810D0A
UTF-8:
网络验证 CrackMe\n By luliucheng\n不是每一把锁都能用钥匙打开。--????????\n
You can't import a module because of the security problem
输入格式错误!
你输入的密码:
https://peasoft.github.io/dl/crackme1
检测通过
密码正确!
密码错误!
程序验证出错,请重试!
可知关键在https://peasoft.github.io/dl/crackme1,继续分析源码,input函数其实就是print函数,判断的关键语句就是在这个网址的4个txt里,密码需要满足:
passwd[-4:] == "52pj"
len(passwd) == 20080313
hash(passwd) == 1145141919810
f"{passwd}" == "{passwd}"
这样的密码显然不存在,那么直接本地建4个txt,内容都是True,然后修改resource中的网址为localhost就行了 66666真不错 感谢楼主分享 谢谢分享 这个只能在Python里用吗 badwd 发表于 2023-1-15 15:32
这个只能在Python里用吗
这个是已经打包成exe的,电脑无需安装Python即可运行,但破解时可能还是需要Python辅助。 感谢分享,刚刚好用得上
页:
[1]
2