|
If you are familiar with client hacking, specifically hacking the 317 build of the client, you may have seen this array:
What properties does this array have?Code:final class SizeConstants { public static final int[] anIntArray552 = { 6, 21, 25, 33, 254, 127, 183, 87, 216, 215, 211, 48, 15, 195, 149, 233, 162, 102, 104, 179, 222, 103, 224, 81, 152, 89, 45, 11, 197, 187, 210, 37, 135, 220, 137, 128, 63, 188, 207, 144, 201, 161, 28, 192, 206, 32, 115, 57, 196, 22, 132, 226, 227, 169, 237, 105, 174, 109, 5, 55, 205, 156, 8, 34, 113, 176, 209, 3, 50, 117, 122, 189, 101, 142, 246, 163, 238, 76, 74, 84, 91, 217, 58, 23, 118, 66, 35, 164, 114, 138, 96, 110, 29, 235, 147, 249, 214, 198, 242, 56, 94, 248, 59, 253, 150, 16, 13, 46, 24, 130, 232, 153, 167, 229, 79, 134, 26, 191, 0, 213, 204, 241, 160, 39, 180, 49, 250, 47, 140, 193, 202, 108, 120, 247, 106, 194, 65, 27, 93, 143, 186, 171, 125, 54, 155, 190, 139, 165, 77, 178, 72, 99, 61, 141, 116, 100, 80, 184, 154, 145, 131, 12, 90, 42, 255, 75, 44, 78, 172, 107, 52, 7, 119, 146, 38, 218, 10, 223, 182, 240, 159, 88, 158, 64, 221, 200, 1, 43, 252, 62, 40, 230, 129, 18, 111, 51, 17, 53, 136, 20, 60, 225, 30, 9, 239, 97, 234, 41, 203, 236, 36, 185, 212, 19, 245, 251, 208, 175, 243, 86, 2, 69, 181, 151, 14, 166, 70, 98, 124, 126, 67, 157, 199, 112, 123, 177, 82, 168, 71, 170, 95, 31, 92, 4, 231, 219, 73, 85, 244, 148, 173, 228, 121, 83, 133, 68, 0 };
There isn't a single number in the array that repeats, the array length is 257, the range of the values in the array is from 0 to 255 inclusive.
So, this means?
Just based from that information and the location of where the array is that this data maps the obfuscated id of a packet to the actual id of a packet.
tl;dr What is it?
It's an array that maps the obfuscated packet ids to actual ids.
Here's a print out of the actual packet ids and a tag for functionality:
List of used packetsCode:idle, 6 logout, 30 click, 31 anticheat, 32 focus_change, 33 camera_rotated, 35 check_9, 60 check_8, 61 check_7, 62 check_10, 63 check_6, 65 check_4, 71 check_5, 72 check_0, 73 check_2, 74 check_1, 76 check_3, 77 gitem_option_1, 80 npc_option_1, 100 obj_option_1, 120 plr_option_1, 140 plr_option_2, 141 item_option_1, 160 item_on_item, 169 container_option_1, 190 close_interfaces, 202 num_input, 203 tab_changed, 204 text_input, 205 item_on_plr, 216 map_rebuilt, 241 interaction_route, 242 report, 243 minimap_route, 244 item_swapped, 245 rm_ignore, 246 add_ignore, 247 appearance, 248 chat_filters, 249 priv_msg, 250 rm_friend, 251 add_friend, 252 cmd, 253 chat, 254 tile_route, 255
You can identify a few patterns above, and with that I can conclude that this is the purpose of the array.Code:"[[6, \"used\"], [30, \"used\"], [31, \"used\"], [32, \"used\"], [33, \"used\"], [35, \"used\"], [36, \"used\"], [60, \"used\"], [61, \"used\"], [62, \"used\"], [63, \"used\"], [64, \"used\"], [65, \"used\"], [66, \"used\"], [67, \"used\"], [70, \"used\"], [71, \"used\"], [72, \"used\"], [73, \"used\"], [74, \"used\"], [75, \"used\"], [76, \"used\"], [77, \"used\"], [80, \"used\"], [81, \"used\"], [82, \"used\"], [83, \"used\"], [84, \"used\"], [88, \"used\"], [89, \"used\"], [100, \"used\"], [101, \"used\"], [102, \"used\"], [103, \"used\"], [104, \"used\"], [108, \"used\"], [109, \"used\"], [120, \"used\"], [121, \"used\"], [122, \"used\"], [123, \"used\"], [124, \"used\"], [128, \"used\"], [129, \"used\"], [140, \"used\"], [141, \"used\"], [142, \"used\"], [143, \"used\"], [144, \"used\"], [148, \"used\"], [149, \"used\"], [160, \"used\"], [161, \"used\"], [162, \"used\"], [163, \"used\"], [164, \"used\"], [168, \"used\"], [169, \"used\"], [190, \"used\"], [191, \"used\"], [192, \"used\"], [193, \"used\"], [194, \"used\"], [200, \"used\"], [201, \"used\"], [202, \"used\"], [203, \"used\"], [204, \"used\"], [205, \"used\"], [241, \"used\"], [242, \"used\"], [243, \"used\"], [244, \"used\"], [245, \"used\"], [246, \"used\"], [247, \"used\"], [248, \"used\"], [249, \"used\"], [250, \"used\"], [251, \"used\"], [252, \"used\"], [253, \"used\"], [254, \"used\"], [255, \"used\"]]"
So these don't change from revision to revision? Like idle stays 6 from 317 to 377? Is there something like this for the flags of player/NPC updating, because those differ from revision to revision?
I haven't opened a 377 client to check, I assume not though. These are the unobfuscated ids. I'll have to see if there is a similar array within the older clients.
Here's the array in a 377 client:
And, here is the printout of the packets:Code:// public static final int anIntArray208[] = { 98, 169, 38, 190, 164, 57, 241, 179, 104, 56, 186, 107, 118, 102, 13, // 5, 55, 235, 18, 31, 236, 23, 75, 220, 161, 127, 2, 134, 255, 225, 9, 148, 130, 113, 198, 212, 168, 116, 28, // 114, 6, 173, 103, 132, 154, 144, 40, 76, 92, 254, 122, 46, 87, 187, 83, 124, 253, 109, 95, 196, 175, 208, // 215, 34, 199, 50, 152, 101, 151, 67, 59, 82, 48, 97, 136, 203, 17, 80, 36, 200, 37, 99, 219, 88, 224, 207, // 24, 139, 230, 93, 195, 192, 39, 119, 11, 60, 214, 12, 165, 7, 81, 239, 216, 147, 108, 43, 182, 110, 96, 27, // 202, 16, 100, 170, 3, 15, 143, 188, 1, 204, 252, 125, 211, 245, 153, 47, 64, 178, 174, 137, 68, 240, 86, // 210, 221, 8, 123, 228, 94, 85, 35, 251, 49, 149, 79, 234, 105, 65, 58, 171, 185, 21, 129, 226, 189, 206, // 138, 62, 194, 117, 246, 162, 91, 248, 167, 61, 237, 156, 71, 26, 51, 32, 66, 73, 172, 0, 249, 191, 150, // 233, 157, 120, 54, 159, 243, 14, 180, 33, 106, 90, 177, 20, 176, 133, 142, 209, 19, 72, 10, 238, 41, 155, // 30, 160, 115, 146, 205, 42, 111, 217, 128, 89, 181, 244, 223, 131, 69, 247, 231, 184, 213, 227, 63, 166, 4, // 135, 201, 250, 163, 78, 84, 193, 183, 141, 197, 229, 53, 45, 52, 222, 77, 121, 44, 29, 70, 140, 25, 242, // 74, 218, 158, 232, 126, 112, 22, 145, 0 };
They match the ones above.Code:click, 31 focus, 33 camera, 35 item_swap, 245 priv_msg, 250
Nice find, thanks for answering my question. Okay, so it would make sense for servers to use the "unobfuscated" ids instead of the obfuscated ones now. It would make upgrading from a 317 to a higher revision easier, I imagine. Why is this code in the client if it's never referenced anywhere?
I don't have a clue why it isn't used, and yes. It actually makes me question if the current model we have now is correct because I have reason to believe you could classic the 'handshakes' as packets too. This means that packet 14, 15, 16, 18 are reserved for login/ondemand. In 317 0-4 would be reserved for requesting archives.
The reason its in the client may be so that Jagex could pop the array into a server and have it work with that client build. There may be reason to believe that you can determine the obfuscated packet structures from this array as well. I'll have to compare packets though and see if that is the case.
Interesting find
Couldn't find anything similar in 498, though I might not of been looking right
400+ use constants instead:
Code:public static final int anInt567 = 231; public static final int anInt568 = 16; public static final int anInt569 = 32; public static final int anInt570 = 1; public static final int anInt571 = 8; public static final int anInt572 = 238; public static final int anInt573 = 4; public static final int anInt574 = 202; public static final int anInt575 = 153; public static final int anInt576 = 256; public static final int anInt577 = 1024; public static final int anInt578 = 16; public static final int anInt579 = 8; public static final int anInt580 = 4; public static final int anInt581 = 32; public static final int anInt582 = 246; public static final int anInt583 = 64; public static final int anInt584 = 217; public static final int anInt585 = 2; public static final int anInt586 = 21; public static final int anInt587 = 135; public static final int anInt588 = 88; public static final int anInt589 = 97; public static final int anInt590 = 77; public static final int anInt591 = 155; public static final int anInt592 = 205; public static final int anInt593 = 106; public static final int anInt594 = 245; public static final int anInt595 = 224; public static final int anInt596 = 20; public static final int anInt597 = 52; public static final int anInt598 = 207; public static final int anInt599 = 173; public static final int anInt600 = 6; public static final int anInt601 = 7; public static final int anInt602 = 81; public static final int anInt603 = 39; public static final int anInt604 = 67; public static final int anInt605 = 89; public static final int anInt606 = 80; public static final int anInt607 = 87; public static final int anInt608 = 184; public static final int anInt609 = 147; public static final int anInt610 = 95; public static final int anInt611 = 48; public static final int anInt612 = 56; public static final int anInt613 = 26; public static final int anInt614 = 50; public static final int anInt615 = 85; public static final int anInt616 = 32; public static final int anInt617 = 70; public static final int anInt618 = 84; public static final int anInt619 = 234; public static final int anInt620 = 171; public static final int anInt621 = 70; public static final int anInt622 = 176; public static final int anInt623 = 17; public static final int anInt624 = 197; public static final int anInt625 = 214; public static final int anInt626 = 198; public static final int anInt627 = 128; public static final int anInt628 = 225; public static final int anInt629 = 169; public static final int anInt630 = 177; public static final int anInt631 = 168; public static final int anInt632 = 41; public static final int anInt633 = 13; public static final int anInt634 = 172; public static final int anInt635 = 139; public static final int anInt636 = 57; public static final int anInt637 = 129; public static final int anInt638 = 190; public static final int anInt639 = 73; public static final int anInt640 = 164; public static final int anInt641 = 19; public static final int anInt642 = 161; public static final int anInt643 = 111; public static final int anInt644 = 131; public static final int anInt645 = 128; public static final int anInt646 = 241; public static final int anInt647 = 117; public static final int anInt648 = 142; public static final int anInt649 = 137; public static final int anInt650 = 86; public static final int anInt651 = 78; public static final int anInt652 = 229; public static final int anInt653 = 211; public static final int anInt654 = 180; public static final int anInt655 = 2; public static final int anInt656 = 167; public static final int anInt657 = 42; public static final int anInt658 = 222; public static final int anInt659 = 208; public static final int anInt660 = 72; public static final int anInt661 = 100; public static final int anInt662 = 113; public static final int anInt663 = 228; public static final int anInt664 = 29; public static final int anInt665 = 161; public static final int anInt666 = 224; public static final int anInt667 = 178; public static final int anInt668 = 220; public static final int anInt669 = 210; public static final int anInt670 = 108; public static final int anInt671 = 22; public static final int anInt672 = 73; public static final int anInt673 = 63; public static final int anInt674 = 87; public static final int anInt675 = 214; public static final int anInt676 = 240; public static final int anInt677 = 248; public static final int anInt678 = 190; public static final int anInt679 = 168; public static final int anInt680 = 1; public static final int anInt681 = 254; public static final int anInt682 = 169; public static final int anInt683 = 243; public static final int anInt684 = 1; public static final int anInt685 = 102; public static final int anInt686 = 140; public static final int anInt687 = 251; public static final int anInt688 = 64; public static final int anInt689 = 235; public static final int anInt690 = 84; public static final int anInt691 = 160; public static final int anInt692 = 67; public static final int anInt693 = 95; public static final int anInt694 = 88; public static final int anInt695 = 66; public static final int anInt696 = 106; public static final int anInt697 = 232; public static final int anInt698 = 90; public static final int anInt699 = 133; public static final int anInt700 = 83; public static final int anInt701 = 25; public static final int anInt702 = 247; public static final int anInt703 = 241; public static final int anInt704 = 246; public static final int anInt705 = 146; public static final int anInt706 = 102; public static final int anInt707 = 72; public static final int anInt708 = 117; public static final int anInt709 = 111; public static final int anInt710 = 119; public static final int anInt711 = 145; public static final int anInt712 = 183; public static final int anInt713 = 226; public static final int anInt714 = 79; public static final int anInt715 = 179; public static final int anInt716 = 76; public static final int anInt717 = 512; public static final int anInt718 = 251; public static final int anInt719 = 218; public static final int anInt720 = 127; public static final int anInt721 = 239; public static final int anInt722 = 41; public static final int anInt723 = 6; public static final int anInt724 = 186; public static final int anInt725 = 40; public static final int anInt726 = 154; public static final int anInt727 = 242; public static final int anInt728 = 129; public static final int anInt729 = 21; public static final int anInt730 = 223; public static final int anInt731 = 185; public static final int anInt732 = 27; public static final int anInt733 = 215; public static final int anInt734 = 252; public static final int anInt735 = 162; public static final int anInt736 = 53; public static final int anInt737 = 49; public static final int anInt738 = 197; public static final int anInt739 = 2; public static final int anInt740 = 96; public static final int anInt741 = 60; public static final int anInt742 = 203; public static final int anInt743 = 205; public static final int anInt744 = 92; public static final int anInt745 = 71; public static final int anInt746 = 167; public static final int anInt747 = 211; public static final int anInt748 = 38; public static final int anInt749 = 245; public static final int anInt750 = 120; public static final int anInt751 = 30; public static final int anInt752 = 176;
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |