I have a code piece to disconnect when a player starts flashing. This is for packet 10017. I think this is useful for mining bot. Anyone who worked on Talk-to-NPC function, please share the information? Eventually I will get there but we could exchange basic functions P4N, first "if section" for char update can be refactored using similar pattern, btw.
Thanks.
else if (Client.DcOnFlashing)
{
uint Amount = ReadUInt32(Data, 8);
int Pointer = 12;
for (uint i = 0; i < Amount; i++)
{
uint StatusCode = ReadUInt16(Data, Pointer);
if (StatusCode == 25)
{
ulong StatusValue = ReadUInt32(Data, Pointer + 4);
if ((StatusValue & 0x1) > 0)
{
COut(Client.Name + " Disconnecting due to flashing player name: ");
Client.Disconnect();
}
Pointer += 12;
}
}
}
lol u lot should just get an svn and be done with it :P
altho id recommend only adding users if some1 actually contributes to the origional source code, then let em get access to add it to ur svn. ull all get stuff done much quicker
Just so you know but decrypting passwords with your own code doesn't work properly, lol
I downloaded the proxy, stuck your code in, ran it, logged in and it printed the wrong password to the console.
string Pass;
msvcrt.msvcrt.srand(Client.PassSeed);
var rc5Key = new byte[0x10];
for (int i = 0; i < 0x10; i++)
rc5Key[i] = (byte)msvcrt.msvcrt.rand();
ConquerPasswordCryptpographer A = new ConquerPasswordCryptpographer(User);
Encryption.RC5 B = new Encryption.RC5(rc5Key);
Pass = Encoding.ASCII.GetString(
(new ConquerPasswordCryptpographer(User).Decrypt(new Encryption.RC5(rc5Key).Decrypt(Password))));
Pass = Pass.Replace("\0", "");
I just use the released liberate cryptography dll, msvcrt dll and then the following pass crypt class.
Code:
public sealed class RC5Exception : Exception
{
public RC5Exception(string message) : base(message) { }
}
public sealed class RC5
{
private readonly uint[] _bufKey = new uint[4];
private readonly uint[] _bufSub = new uint[26];
public RC5(byte[] data)
{
if (data.Length != 16) throw new RC5Exception("Invalid data length. Must be 16 bytes");
const uint p32 = 0xB7E15163;
const uint q32 = 0x61C88647;
uint offsetA = 0, offsetB = 0, A = 0, B = 0;
for (int i = 0; i < 4; i++)
_bufKey[i] = (uint)(data[i * 4] + (data[i * 4 + 1] << 8) + (data[i * 4 + 2] << 16) + (data[i * 4 + 3] << 24));
_bufSub[0] = p32;
for (int i = 1; i < 26; i++)
{
_bufSub[i] = _bufSub[i - 1] - q32;
}
for (int s = 1; s <= 78; s++)
{
_bufSub[offsetA] = LeftRotate(_bufSub[offsetA] + A + B, 3);
A = _bufSub[offsetA];
offsetA = (offsetA + 1) % 0x1A;
_bufKey[offsetB] = LeftRotate(_bufKey[offsetB] + A + B, (int)(A + B));
B = _bufKey[offsetB];
offsetB = (offsetB + 1) % 4;
}
}
public byte[] Decrypt(byte[] data)
{
if (data.Length % 8 != 0) throw new RC5Exception("Invalid password length. Must be multiple of 8");
int nLen = data.Length / 8 * 8;
if (nLen <= 0) throw new RC5Exception("Invalid password length. Must be greater than 0 bytes.");
uint[] bufData = new uint[data.Length / 4];
for (int i = 0; i < data.Length / 4; i++)
bufData[i] = (uint)(data[i * 4] + (data[i * 4 + 1] << 8) + (data[i * 4 + 2] << 16) + (data[i * 4 + 3] << 24));
for (int i = 0; i < nLen / 8; i++)
{
uint ld = bufData[2 * i];
uint rd = bufData[2 * i + 1];
for (int j = 12; j >= 1; j--)
{
rd = RightRotate((rd - _bufSub[2 * j + 1]), (int)ld) ^ ld;
ld = RightRotate((ld - _bufSub[2 * j]), (int)rd) ^ rd;
}
uint B = rd - _bufSub[1];
uint A = ld - _bufSub[0];
bufData[2 * i] = A;
bufData[2 * i + 1] = B;
}
byte[] result = new byte[bufData.Length * 4];
for (int i = 0; i < bufData.Length; i++)
{
result[i * 4] = (byte)bufData[i];
result[i * 4 + 1] = (byte)(bufData[i] >> 8);
result[i * 4 + 2] = (byte)(bufData[i] >> 16);
result[i * 4 + 3] = (byte)(bufData[i] >> 24);
}
return result;
}
public byte[] Encrypt(byte[] data)
{
if (data.Length % 8 != 0) throw new RC5Exception("Invalid password length. Must be multiple of 8");
int nLen = data.Length / 8 * 8;
if (nLen <= 0) throw new RC5Exception("Invalid password length. Must be greater than 0 bytes.");
uint[] bufData = new uint[data.Length / 4];
for (int i = 0; i < data.Length / 4; i++)
bufData[i] = (uint)(data[i * 4] + (data[i * 4 + 1] << 8) + (data[i * 4 + 2] << 16) + (data[i * 4 + 3] << 24));
for (int i = 0; i < nLen / 8; i++)
{
uint A = bufData[i * 2];
uint B = bufData[i * 2 + 1];
uint le = A + _bufSub[0];
uint re = B + _bufSub[1];
for (int j = 1; j <= 12; j++)
{
le = LeftRotate((le ^ re), (int)re) + _bufSub[j * 2];
re = LeftRotate((re ^ le), (int)le) + _bufSub[j * 2 + 1];
}
bufData[i * 2] = le;
bufData[i * 2 + 1] = re;
}
byte[] result = new byte[bufData.Length * 4];
for (int i = 0; i < bufData.Length; i++)
{
result[i * 4] = (byte)bufData[i];
result[i * 4 + 1] = (byte)(bufData[i] >> 8);
result[i * 4 + 2] = (byte)(bufData[i] >> 16);
result[i * 4 + 3] = (byte)(bufData[i] >> 24);
}
return result;
}
internal static uint LeftRotate(uint dwVar, int dwOffset)
{
return (dwVar << (dwOffset & 0x1F) | dwVar >> 0x20 - (dwOffset & 0x1F));
}
internal static uint RightRotate(uint dwVar, int dwOffset)
{
return (dwVar >> (dwOffset & 0x1F) | dwVar << 0x20 - (dwOffset & 0x1F));
}
}
Anyone using ConquerLoader on Vista? I have no problem using in XP but it uses real conquer ips rather Loadset.ini in Vista. I have been scratching my head... ConquerLoader V4 should work as it is. Well, say something about this, brothers
Anyone using ConquerLoader on Vista? I have no problem using in XP but it uses real conquer ips rather Loadset.ini in Vista. I have been scratching my head... ConquerLoader V4 should work as it is. Well, say something about this, brothers
Mu bro created a new user in his computer (windows xp) .
In admin mode not work , and in new user works nicely. IDK why .
Just so you know but decrypting passwords with your own code doesn't work properly, lol
I downloaded the proxy, stuck your code in, ran it, logged in and it printed the wrong password to the console.
It does... you're just not reading the original password byte array properly. I used that exact code back when I logged passwords going through the proxy. (removed for obvious reasons when I released the source lol)
@warlax: Good idea for them.
Dropbox or svn would be a great option for you guys so that you can simply share copies of it between you simply.
It does... you're just not reading the original password byte array properly. I used that exact code back when I logged passwords going through the proxy. (removed for obvious reasons when I released the source lol)
@warlax: Good idea for them.
Dropbox or svn would be a great option for you guys so that you can simply share copies of it between you simply.
How could it be wrong when I just used what you had in there?
//edit I stuck the code between this btw.
byte[] Pass = PR.ReadBytes(16); //Removed decryption
PR.ReadBytes(112);
the pass is good to be stay in cripted way no release decryption ... work on pakcets and new hunt method.. i start to used a spiral method hunt use spiral function to move char then restart to started point.
function Dijkstra(L[1..n, 1..n]) : array [2..n]
{
array D[2..n]
set C
C <- {2, 3, 4, 5, 6, …, n}
for i <- 2 to n
D[i] <- L[1,i]
repeat n - 2 times
v <- C // minimum D[v] extract to C
v <- C - {v}
for each w in C do
D[w] <- min(D[w], D[v] + L[v,w])
return D
}
Dijkstra's Algorithm solves to shortest path problem .. i posted the algoritm when is fixed i pubblish all
[RELEASE(SOURCE CODE)]-- KabBOT2 v1 Full Source(vb6) 10/07/2011 - Dekaron Exploits, Hacks, Bots, Tools & Macros - 106 Replies I've been meaning to post this for awhile but I pretty much forgot about it. I've been getting quite a few requests for it so I decided to finally get around to posting it.
#1. So here you go, Just have or Download Visual Basic 6, you need to update it to VbRuntime 6 Service Pack 6.
#2. Run the file name KabBOT.vbp.
#3. Enjoy.
100% Virus Free VirusTotal.com report.
VirusTotal - Free Online Virus, Malware and URL Scanner
[RELEASE] [OPEN SOURCE] CE 5.5 Pointer to AutoIt Source-Code 02/13/2011 - AutoIt - 6 Replies Habe heute erst gemerkt, dass es hier eine AutoIt Sektion gibt xD also poste ich mal mein Programm mit rein.
Funktionsweise:
1. in CE Rechtsklick auf den Pointer und auf "Copy" klicken
2. in meinem Programm auf "Code generieren" klicken
3. In euer Scite gehen und einfügen
Hier ist der Source Code vom Programm: