Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.8 KiB
83 lines
2.8 KiB
from telethon import TelegramClient, events, sync |
|
from telethon.network import ConnectionTcpAbridged |
|
from telethon.network.mtprotostate import MTProtoState |
|
from telethon.crypto.authkey import AuthKey |
|
|
|
import struct |
|
import logging |
|
logging.basicConfig(level=logging.DEBUG) |
|
|
|
# import sys |
|
# print(sys.path) |
|
|
|
# These example values won't work. You must get your own api_id and |
|
# api_hash from https://my.telegram.org, under API Development. |
|
api_id = 1025907 |
|
api_hash = '452b0359b988148995f22ff0f4229750' |
|
|
|
client = TelegramClient('session_name', api_id, api_hash, connection=ConnectionTcpAbridged) |
|
#client.start() |
|
#client.connect() |
|
|
|
authKey = AuthKey(bytes.fromhex("2c45ed62da34d41bc82b6ef660760d3b01cb80028b0c363633f1c40ec80d5f4ad9d4ddee646736b6a9465fd7258b8936dedde6a86c69b4a03277ed6c543ccfd31fa8fa9f9449d686b4822b54542c91255231ecfa6aed4a9896cdcc3d5491e7f1b7529cbff75597f262813ced7eb3b5ac1e7e6794ca7aa00c5ea4d1d714e7c276fb63e5f8a1742cf4707eace8a6ec2ed4dcceceabdc7fc92bd099c811931e0da337f1b0271d8ba33e7a4a22fa1e4a913d8220edb0dd3a810ed408f03fe5d7f2d5dd43db4272d314b20a22376c03b0a05423600f4d012e7196ce9b3c45b28a75dbfa053222f5c86d1c6a706a2fd68ca270fd9a6449df1fa15a21837d34f4cf4e95")) |
|
state = MTProtoState(authKey, loggers=client._log) |
|
|
|
state.salt = struct.unpack('q', bytes.fromhex("d1b37eebb4997ca9"))[0] |
|
state.id = struct.unpack('q', bytes.fromhex("502368ee46d39313"))[0] |
|
|
|
print(state.id) |
|
|
|
""" with open('file_part.txt', 'r') as file: |
|
data = file.read() |
|
messageData = bytes.fromhex(data) |
|
#messageData = bytes.fromhex("146f8265b5342560290000000c000000ec77be7aaa40f90300000000") |
|
#print(data) |
|
|
|
encrypted = state.encrypt_message_data(messageData) |
|
|
|
file.close() |
|
with open('file_part_encrypted.txt', 'w') as file: |
|
file.write(encrypted.hex()) |
|
file.close() |
|
#print(encrypted) """ |
|
|
|
with open('debugRequests_before.txt', 'r') as fileBefore: |
|
data = fileBefore.read() |
|
lines = data.splitlines() |
|
|
|
with open('debugRequests_after.txt', 'r') as fileAfter: |
|
data = fileAfter.read() |
|
linesAfter = data.splitlines() |
|
|
|
length = len(lines) |
|
for i in range(length): |
|
print("processing line %i, of %i", i, length) |
|
|
|
lineBefore = lines[i] |
|
|
|
messageData = bytes.fromhex(lineBefore) |
|
encrypted = state.encrypt_message_data(messageData) # need to comment padding inside |
|
|
|
lineAfter = linesAfter[i] |
|
|
|
#print(len(encrypted.hex())) |
|
#print(len(lineAfter)) |
|
#print(encrypted.hex() == lineAfter) |
|
|
|
#break |
|
|
|
if encrypted.hex() != lineAfter: |
|
print("lol") |
|
|
|
with open('difference_before.txt', 'w') as file: |
|
file.write(lineAfter) |
|
file.close() |
|
|
|
with open('difference_after.txt', 'w') as file: |
|
file.write(encrypted.hex()) |
|
file.close() |
|
|
|
|
|
#print(encrypted.hex()) |
|
#print(lineAfter) |
|
exit()
|
|
|