This commit is contained in:
m.navaei 2018-02-07 18:50:36 +03:30
parent 7bca8302a3
commit b9101b46da
3 changed files with 26 additions and 7 deletions

View file

@ -83,6 +83,7 @@ namespace TlgListenerApplication
uint responseCode = 0;
const uint step1Constructor = 0x60469778;
const uint step2Constructor = 0xd712e4be;
const uint step3Constructor = 0xf5045f1f;
if (netStream.CanRead)
{
@ -122,7 +123,7 @@ namespace TlgListenerApplication
if (netStream.CanWrite)
{
var fingerprint = StringToByteArray("216be86c022bb4c3");
byte[] outputdata = null;
@ -140,13 +141,13 @@ namespace TlgListenerApplication
}
else if (responseCode == step2Constructor)
{
var newnonce = new byte[32];
var newnonce = new byte[16];
new Random().NextBytes(newnonce);
byte[] answer;
var hashsum = Encoding.UTF8.GetBytes("asdfghjklmnbvcxzasdf");
const uint innerCode = 0xb5890dba;
AESKeyData key = AES.GenerateKeyDataFromNonces(nonceFromClient, newnonce);
AESKeyData key = AES.GenerateKeyDataFromNonces(newnonce, newnonce);
using (var memoryStream = new MemoryStream())
{
using (var binaryWriter = new BinaryWriter(memoryStream))
@ -170,6 +171,23 @@ namespace TlgListenerApplication
EncryptedAnswer = AES.EncryptAES(key, answer)
}.ToBytes();
}
else if (responseCode == step3Constructor)
{
var newnonce = new byte[16];
new Random().NextBytes(newnonce);
const uint innerCode = 0x3bcbf734;
using (var memoryStream = new MemoryStream())
{
using (var binaryWriter = new BinaryWriter(memoryStream))
{
binaryWriter.Write(innerCode);
binaryWriter.Write(newnonce);
binaryWriter.Write(nonceFromClient);
binaryWriter.Write(newnonce);
outputdata = memoryStream.ToArray();
}
}
}
var bytes = PrepareToSend(outputdata);
var datatosend = Encode(bytes, 11);

View file

@ -15,7 +15,6 @@ namespace TLSharp.Core.Auth
public byte[] ToBytes()
{
new Random().NextBytes(Nonce);
const uint constructorNumber = 0xd0e8075c;
using (var memoryStream = new MemoryStream())
@ -25,7 +24,8 @@ namespace TLSharp.Core.Auth
binaryWriter.Write(constructorNumber);
binaryWriter.Write(ServerNonce);
binaryWriter.Write(Nonce);
binaryWriter.Write(EncryptedAnswer);
//binaryWriter.Write(EncryptedAnswer);
Serializers.Bytes.write(binaryWriter, EncryptedAnswer);
return memoryStream.ToArray();
}
@ -152,7 +152,7 @@ namespace TLSharp.Core.Auth
EncryptedAnswer = encryptedAnswer,
ServerNonce = serverNonceFromServer,
Nonce = nonceFromServer,
NewNonce = newNonce
NewNonce = serverNonceFromServer
};
}
}

View file

@ -2,6 +2,7 @@
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using TLSharp.Core.MTProto;
using TLSharp.Core.MTProto.Crypto;
@ -11,7 +12,6 @@ namespace TLSharp.Core.Auth
{
public AuthKey AuthKey { get; set; }
public int TimeOffset { get; set; }
}
public class Step3_CompleteDHExchange
@ -37,6 +37,7 @@ namespace TLSharp.Core.Auth
using (BinaryReader dhInnerDataReader = new BinaryReader(dhInnerData))
{
byte[] hashsum = dhInnerDataReader.ReadBytes(20);
var hashsumstr = Encoding.UTF8.GetString(hashsum);
uint code = dhInnerDataReader.ReadUInt32();
if (code != 0xb5890dba)
{