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.
84 lines
2.8 KiB
84 lines
2.8 KiB
4 years ago
|
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()
|