一个论坛的邀请码获取(没做出来。。。)

一个论坛的邀请码获取(没做出来。。。)

前言

逛论坛看到了这个贴。。。

计算题 也许需要点编程知识 emm
https://www.52pojie.cn/thread-1433873-1-1.html
(出处: 吾爱破解论坛)

(辣鸡小白就兴冲冲的去试了试)

第一关

1+1=2,白给题

第二关

有上面悬赏大佬给的现成的答案(1%2/3*4^5*6^7+8-9),没错,哈哈….

第三关

打游戏我打了20次打吐了,就不再打了。。

就是这样的游戏,两个一样的在一块就会升级,最后获得最大的那个就行

然后因为第四关是挂机挖⛏的,等了几十分钟没啥反应就直接想看代码了。。

看代码

有个py文件,下载下来看看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import base64
import gzip
from hashlib import md5
import urllib.request
print("欢迎来到Hackxxx信息流邀请码挑战题!\n本题一共有五关,通关前四关会得到hackxxx的邀请码,通关第五关可以加我微信,拉你到hacxxx交流群~\n")
exec(urllib.request.urlopen("http://i.hackxxx.com/static/aes.py").read().decode())
def Decrypt(key: str, text: str) -> str:
if len(key) < 32:
key += ' ' * (32 - len(key))
elif len(key) > 32:
key = key[0:32]
aes = AESModeOfOperationCTR(key.encode())
s = gzip.decompress(aes.decrypt(base64.b64decode(text)))
return str(s, encoding='utf-8')
print("第一关:计算结果 1+1=?")
while True:
key = input("请输入答案:")
try:
exec(Decrypt(key, "太长省略"))
break
except KeyboardInterrupt:
raise
except Exception:
print("[x] 抱歉,答案错误")

咦?咋只有第一关的代码,感觉上是exec()的问题,网上一搜发现这个指令是运行字符串内的指令,比如说 exec(“print(“alittlebear”)”)运行输出 alittlebear 而不是 print(“alittlebear”)

所以把exec换成print试试

输出:

1
2
3
4
5
6
7
8
9
10
print("恭喜你通过第一关!\n\n第二关:1_2_3_4_5_6_7_8_9=95551487,每处_填入1个运算符+-*/%^(注意^符号是次方运算,运算规则是先次方运算再乘除再加减),每个运算符都要用到并且使得等式成立(答案保证唯一),表达式为?")
while True:
key = input("请输入表达式:")
try:
exec(Decrypt(key, '太长省略'))
break
except KeyboardInterrupt:
raise
except Exception as e:
print("[x] 抱歉,答案错误")

跟上面一样,exec换成print

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import json
import math
import threading
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
data = {'status': 'ok'}
host = ('127.0.0.1', int(math.pow(2, 14))) # 16384
key = ''
print("恭喜你通关第二关!\n\n第三关:合成大黑阔 \n访问链接:https://i.hackxxx.com/static/bighacker/ \n完成游戏,合成最终的大黑阔即可通关~")
class Resquest(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header('Content-type', 'application/json')
self.end_headers()
global key
path = self.path.strip("/")
try:
key = Decrypt(path, "太长省略")
threading.Thread(target=server.shutdown, daemon=True).start()
except KeyboardInterrupt:
raise
except Exception as e:
print(e)
self.wfile.write(json.dumps(data).encode())
server = ThreadingHTTPServer(host, Resquest)
print("Starting server, listen at: %s:%s" % host)
server.serve_forever()
try:
exec(key)
except Exception as e:
print("第三关出现了错误。")

看不太懂。。。

首先我用cmd把第三关通关了一次,后面一行弹出了这个东西:

127.0.0.1 - - [06/May/2021 03:30:29] "GET /55375yB7OxHJ6SSoJ5ShoDj900 HTTP/1.1" 200 -

前面有个/感觉就是path = self.path.strip("/")诶,strip(“/“)是去除字符串头尾的”/“

试一试

1
2
key = Decrypt('55375yB7OxHJ6SSoJ5ShoDj900', '太长省略')
print(key)

成功获取:

第四关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
#完整代码:
import base64
import gzip
from hashlib import md5
import urllib.request
print("欢迎来到Hackxxx信息流邀请码挑战题!\n本题一共有五关,通关前四关会得到hackxxx的邀请码,通关第五关可以加我微信,拉你到hackxxx交流群~\n")
exec(urllib.request.urlopen("http://i.hackxxx.com/static/aes.py").read().decode())
def Decrypt(key: str, text: str) -> str:
if len(key) < 32:
key += ' ' * (32 - len(key))
elif len(key) > 32:
key = key[0:32]
aes = AESModeOfOperationCTR(key.encode())
s = gzip.decompress(aes.decrypt(base64.b64decode(text)))
return str(s, encoding='utf-8')

import hashlib
import json
import random
import string
import time
import math
def random_str(length=10, chars=string.ascii_lowercase + string.digits):
return ''.join(random.sample(chars, length))
class Block:
def __init__(self, timestamp: int, transactions: list, previous_hash: str, difficult: int):
'''
HACKING8区块数据
:param timestamp: 区块时间戳
:param transactions: 区块附带的交易信息
:param previous_hash: 上一个区块的hash
'''
self.previous_hash = previous_hash
self.timestamp = timestamp
self.transactions = transactions
self.nonce = 0
self.difficult = difficult
self.hash = self.calculate_hash()
def calculate_hash(self):
'''
计算区块hash
:return:hash
'''
hash = str(self.timestamp) + json.dumps(self.transactions) + str(self.nonce) + str(
self.difficult) # + self.previous_hash
for i in range(int(math.pow(2, self.difficult))):
md5 = hashlib.md5()
md5.update(hash.encode('utf-8'))
hash = md5.hexdigest()
return hash
def mine_block(self):
'''
挖矿
:param difficulty: 挖矿难度
:return:
'''
difficulty = self.difficult
while self.hash[0: difficulty] != ''.join(['0'] * difficulty):
# 符合要求
self.nonce += 1
self.hash = self.calculate_hash()
print("挖到区块:%s" % self.hash)
class Transaction:
def __init__(self, from_address, to_address, amount, msg):
'''
交易数据
:param from_address:
:param to_address:
:param amount:
:param msg:
'''
self.from_address = from_address
self.to_address = to_address
self.amount = amount
self.msg = msg
def __dict__(self):
return {
"from": self.from_address,
"to": self.to_address,
"amount": self.amount,
"msg": self.msg
}
class BlockChain:
def __init__(self):
'''
区块链数据结构
'''
self.chain = [self._create_genesis_block()]
self.difficulty = 2
self.pending_transactions = []
self.mining_reward = 100
def _create_genesis_block(self):
'''
生成创世区块链
:return:
'''
timestamp = int(time.time())
block = Block(timestamp, [], "", 0)
return block
def get_latest_block(self):
return self.chain[-1]
def add_transaction(self, transaction: Transaction):
self.pending_transactions.append(transaction.__dict__())
def mine_pending_transaction(self, mining_reward_address):
block = Block(int(time.time()), self.pending_transactions, self.chain[-1].hash, self.difficulty)
block.mine_block()
self.chain.append(block)
# 挖矿成功后 重置待处理事务 添加一笔事务 就是此次挖矿的奖励,但是这笔奖励得等到下个区块挖掘成功才会到账
award = self.mining_reward
self.pending_transactions = [
Transaction("system", mining_reward_address, award, "挖矿奖励:{}".format(award)).__dict__()
]
self.difficulty += 1
def get_balance_of_address(self, address):
'''
获取钱余额
:param address: 钱包地址
:return: 余额
'''
balance = 0
for block in self.chain:
for trans in block.transactions:
if trans["from"] == address:
# 自己发起的交易 支出
balance -= trans["amount"]
if trans["to"] == address:
# 收入
balance += trans["amount"]
# print("from:{} -> to:{} amount:{} info:{}".format(trans["from"], trans["to"], trans["amount"],
# trans["msg"]))
return balance
def verify_blockchain(self):
'''
校验区块链数据是否完整 是否被篡改过
:return: 校验结果
'''
for i in range(1, len(self.chain)):
current_block = self.chain[i] # 当前遍历到的区块
previous_block = self.chain[i - 1] # 当前区块的上一个区块
if current_block.hash != current_block.calculate_hash():
return False
if current_block.previous_hash != previous_block.calculate_hash():
return False
return True
blockChain = BlockChain()
coin_address = random_str(32)
print("恭喜通过第三关!离获得邀请码就差最后一步了!\n\n第四关:Hackxxx信息流开始发行Hackxxx币了,数量有限,先到先得!\n程序将开始挖掘Hackxxx币,当系统确认钱包地址有2333个Hackxxx币时即可通关~")
print("钱包地址:{}\n".format(coin_address))
# 添加两笔交易
blockChain.add_transaction(Transaction('system', coin_address, 100, "系统送你哒"))
blockChain.add_transaction(Transaction('system', coin_address, 33, "系统送你哒"))
while 1:
blockChain.mine_pending_transaction(coin_address)
# 查看账户余额
balance = blockChain.get_balance_of_address(coin_address)
print('钱包:[#{}] 余额:{} \n'.format(coin_address[:10], balance))
if balance == 2333:
key = blockChain.get_latest_block().hash
try:
exec(Decrypt(key, "太长忽略"))
break
except KeyboardInterrupt:
raise
except Exception as e:
print("[x] 抱歉,答案错误",e)

好复杂,头晕😵

运行一下:

1
2
3
4
5
6
7
8
9
10
11
挖到区块:00240a7049c255457c7236485a3f6822
钱包:[#9x217p8vdy] 余额:133

挖到区块:0009a26afa8ed6dbda1d4587210f74bc
钱包:[#9x217p8vdy] 余额:233

挖到区块:000094f73c51a1e4221ebf011fb36e43
钱包:[#9x217p8vdy] 余额:333

挖到区块:00000d4215ce9de2bdc892e27d2f3db4
钱包:[#9x217p8vdy] 余额:433

越到后面越慢。。。余额533到余额633,1个小时了都没好,更别说到2333了。。

首先试试最简单的方法,直接debug改余额,不成功。。

然后再仔细看看代码

最主要的俩方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def calculate_hash(self):
'''
计算区块hash
:return:hash
'''
hash = str(self.timestamp) + json.dumps(self.transactions) + str(self.nonce) + str(
self.difficult) # + self.previous_hash

for i in range(int(math.pow(2, self.difficult))):
md5 = hashlib.md5()
md5.update(hash.encode('utf-8'))
hash = md5.hexdigest()
return hash

def mine_block(self):
'''
挖矿
:param difficulty: 挖矿难度
:return:
'''
difficulty = self.difficult # 0
while self.hash[0: difficulty] != ''.join(['0'] * difficulty):
# 符合要求
self.nonce += 1
self.hash = self.calculate_hash()
print("挖到区块:%s" % self.hash)

看着上面的例子,再看看这个代码,俺懂了

就是一直随机一个哈希值:

第一次如果哈希值前面俩字符是0,就结束 00240a7049c255457c7236485a3f6822

第二次如果哈希值前面三个字符是0,就结束 0009a26afa8ed6dbda1d4587210f74bc

000094f73c51a1e4221ebf011fb36e43

00000d4215ce9de2bdc892e27d2f3db4

。。。

必须要先挖到:00000000000000000000000012345678 才能让你的余额到达2333?(应该没错吧。。)

并且看起来这个随机的顺序不是固定的

那么可以一个一个试??

2,8211,0990,0000个答案。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import base64
import gzip
from hashlib import md5
import urllib.request
import random
import string

exec(urllib.request.urlopen("http://i.hackxxx.com/static/aes.py").read().decode())

chars = "abcdefghijklmnopqrstuvwxyz0123456789"

for i1 in chars:
for i2 in chars:
for i3 in chars:
for i4 in chars:
for i5 in chars:
for i6 in chars:
for i7 in chars:
for i8 in chars:
key = '000000000000000000000000' + i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8
try:
print(key) print(str(gzip.decompress(AESModeOfOperationCTR(key.encode()).decrypt(base64.b64decode("省略"))), encoding='utf-8'))
break
finally:
continue

永远试不完。。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import base64
import gzip
from hashlib import md5
import urllib.request
import random
import string

exec(urllib.request.urlopen("http://i.hackxxx.com/static/aes.py").read().decode())

def random_str(length=8, chars=string.ascii_lowercase + string.digits):
return ''.join(random.sample(chars, length))

while 1:
key = '000000000000000000000000' + random_str()
try:
print(key)
print(str(gzip.decompress(AESModeOfOperationCTR(key.encode()).decrypt(base64.b64decode("省略"))), encoding='utf-8'))
break
finally:
continue

试试随机数?呃。。。一直没结果,更不靠谱了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import base64
import gzip
import urllib.request
from threading import Thread

exec(urllib.request.urlopen("http://i.hackxxx.com/static/aes.py").read().decode())
end = 0
def crack(num):
chars = "abcdefghijklmnopqrstuvwxyz0123456789"
for i1 in chars:
for i2 in chars:
for i3 in chars:
for i4 in chars:
for i5 in chars:
for i6 in chars:
for i7 in chars:
key = '000000000000000000000000' + num + i1 + i2 + i3 + i4 + i5 + i6 + i7
# print(key)
try:
# print(key)
a = AESModeOfOperationCTR(key.encode())
b = gzip.decompress(a)
print(str(b.decrypt(base64.b64decode(
"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")),
encoding='utf-8'))
global end
end = 1
print(key)
break
finally:
continue


class Consumer(Thread):
def __init__(self, num):
Thread.__init__(self)
self.num = num
def run(self):
if end != 1:
crack(self.num)
else:
print('end!')

for i in "abcdefghijklmnopqrstuvwxyz0123456789":
t = Consumer(i)
t.start()

多线程也是一样的慢。。

更多线程试试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import base64
import gzip
import urllib.request
from threading import Thread

exec(urllib.request.urlopen("http://i.hacking8.com/static/aes.py").read().decode())
end = 0
def crack(num1, num2, num3):
chars = "abcdef0123456789"
for i1 in chars:
for i2 in chars:
for i3 in chars:
for i4 in chars:
for i5 in chars:
key = '000000000000000000000000' + num1 + num2 + num3 + i1 + i2 + i3 + i4 + i5
try:
b = gzip.decompress(AESModeOfOperationCTR(key.encode()))
print(str(b.decrypt(base64.b64decode(
"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")),
encoding='utf-8'))
global end
end = 1
print(key)
break
finally:
continue


class Consumer(Thread):
def __init__(self, num1, num2, num3):
Thread.__init__(self)
self.num1 = num1
self.num2 = num2
self.num3 = num3
def run(self):
if end != 1:
crack(self.num1, self.num2, self.num3)
else:
print('end!')

for i in "abcdef0123456789":
for j in "abcdef0123456789":
for k in "abcdef0123456789":
t = Consumer(i,j,k)
t.start()
评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...