mIRC Home    About    Download    Register    News    Help

Print Thread
#54233 13/10/03 03:22 PM
Joined: Apr 2003
Posts: 35
R
Ameglian cow
OP Offline
Ameglian cow
R
Joined: Apr 2003
Posts: 35
I wonder if anyone knows what kind of checksum is being used here and how to generate it (preferably with mIRC scripting).
01 0A 61 (a) -> 6D 85
01 0A 62 (b) -> 6E 86
01 0A 63 (c) -> 6F 87
01 0A 31 (1) -> 3D 55
01 0A 32 (2) -> 3D 56
02 0A 61 61 (aa) -> CF 5B
02 0A 61 62 (ab) -> D0 5C
02 0A 63 61 (ca) -> D1 5F
02 0A 63 62 (cb) -> D2 60
04 0A 61 61 61 61 (aaaa) -> 98 35
04 0A 62 61 61 61 (baaa) -> 99 39

I'm not sure whether the checksums really correspond to the values before, but hopefully the way the values vary should be enough.

Thanks in advance.


Who will trade his karma for my kingdom?
#54234 14/10/03 08:46 PM
Joined: Oct 2003
Posts: 17
T
Pikka bird
Offline
Pikka bird
T
Joined: Oct 2003
Posts: 17
The first bit is unicode hex, i don't think mirc deals with unicode, only ASCII, but even if it did, it would probably be difficult to create a hex editor for mirc.
As for the checksum part, a checksum is usually a basic calculation to the original. eg. addition of 729 or whatever.


----
-= Aliquando Et Insanire Iucundum Est =-
ImmorTalZ: irc.immortalz.org/
#54235 14/10/03 09:46 PM
Joined: Apr 2003
Posts: 35
R
Ameglian cow
OP Offline
Ameglian cow
R
Joined: Apr 2003
Posts: 35
Could you give an explain that's more complete. My knowledge about this subject is quite poor.
Thank you.


Who will trade his karma for my kingdom?
#54236 15/10/03 06:25 PM
Joined: Oct 2003
Posts: 17
T
Pikka bird
Offline
Pikka bird
T
Joined: Oct 2003
Posts: 17
ASCII is the decimal (base 10 (0 through 9)) version of each keystroke. For example, the letter 'A' is represented by the ascii value of 65. You can use the mirc $asc to show this.
Binary is base 2 (0 and 1).
Hex is base 16 (0 through 9 then A through F). The easiest way to work out the hex of a number is to go through binary and splitting into 2.
------
E.g.For the capital letter A:
ASCII = 65
Binary = 01000001
Now split the binary into 2 to get 0100 and 0001. Convert these to to decimal numbers, you get 4 and 1. So the hex value for A is 41.
------
ASCII generally only goes upto about 128 or something like that, so is very limited, whereas Unicode uses 10,000's so can be used for different languages with special characters.

A checksum is usually a calculation, depending on the checksum used, depends on what the calculation is. This calculation is done prior to transfering, and after as a means of checking the bits (a single binary digit) are all in the right order. This could be as simple as 'hex + 1' but that wouldn't be a very accurate method.

The first part of what you pasted is the 'Unicode Hex' values for the letter stings in brackets. If is its showing a checksum, then the second part is the result of the letters a, b, c, aaaa etc after the checksum is done.

Hope this helps smile


----
-= Aliquando Et Insanire Iucundum Est =-
ImmorTalZ: irc.immortalz.org/
#54237 15/10/03 09:49 PM
Joined: Apr 2003
Posts: 35
R
Ameglian cow
OP Offline
Ameglian cow
R
Joined: Apr 2003
Posts: 35
Thank you, but I still don't know how to generate the checksum. I need to send some UDP packets without the kind of data behind the '->' , but that data must be preceded by a checksum, and without it my target ignores the packet. I have even considered to send all the possible combinations, but since they are composed of two bytes they are 256^2 (65536). With each packet weighting =~ 40 bytes, I should have to send 2.5MB...


Who will trade his karma for my kingdom?

Link Copied to Clipboard