Board ArchivesSite FeaturesActiveworlds SupportHistoric Archives |
slippery e // User Search
slippery e // User Searchlicense.awsdk solution?Jun 20, 2006, 9:21am
This is a multi-part message in MIME format.
------=_NextPart_000_0008_01C6946C.6D9296A0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit Let me know if the attached file is useful, or if I've overlooked something. -- Sleepy E ------=_NextPart_000_0008_01C6946C.6D9296A0 Content-Type: text/plain; format=flowed; name="awSDK60Crack.cpp"; reply-type=original Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="awSDK60Crack.cpp" // Created by Sleepy E for SDK build 60. Use and abuse at your own risk. // Could someone please explain why the universe authorization isn't enough. // I'm back to being a tourist again so I haven't actually tested the code fully. // Would need to login a tourist bot for that, and it'd take me an hour to patch. #define WIN32_LEAN_AND_MEAN #include <stdio.h> #include <tchar.h> #include <windows.h> #include "aw.h" // Remove the need for license.awsdk void license_bye(void) { UCHAR *p; long *offset; // Get addresses of API hook HMODULE hmod = GetModuleHandle(_T("aw")); // aw.dll must be loaded already UCHAR *init = (UCHAR*)GetProcAddress(hmod, "aw_init"); // Copy the real API address memcpy(&init, init + 1, sizeof(UCHAR*)); // Patch aw_init aw_init(AW_BUILD); // load first chunk of aw_init into memory // Skip the call to license.awsdk loader p = init + 0x18; *p++ = 0xEB; // jmp short $+0Ah *p = 0x0A; // Get address of license.valid and set it to indicate a valid license memcpy(&p, init + 0x28, sizeof(p)); *p = TRUE; aw_init(AW_BUILD); // make sure next chunk of aw_init is in memory // Get the absolute address of license.expired() and patch it to always return FALSE p = init + 0x35; offset = (long*)(init + 0x31); p += *offset; *p++ = 0x33; // xor eax, eax *p++ = 0xC0; *p = 0xC3; // retn // No need to patch aw_create_resolve because, // license.address and license.port are both 0 by default which means they're // not compared to where the users wants to connect // license.limit is 0 by default which means no limit for the number of instances } int _tmain(int argc, _TCHAR* argv[]) { license_bye(); int rc = aw_init(AW_BUILD); if (rc) { printf("Reason code %d; that's bad mmmkay?", rc); return 1; } //your_sdk_code_here(); return 0; } ------=_NextPart_000_0008_01C6946C.6D9296A0-- license.awsdk solution?Jun 20, 2006, 10:47am
This is a multi-part message in MIME format.
------=_NextPart_000_0017_01C69478.6ABC9CD0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit Seems patching the code wasn't good enough so here's the revised version. It connects to the stagecoach universe for me. -- Sleepy E ------=_NextPart_000_0017_01C69478.6ABC9CD0 Content-Type: text/plain; format=flowed; name="awSDK60Crack.cpp"; reply-type=original Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="awSDK60Crack.cpp" // Created by Sleepy E for SDK build 60. Use and abuse at your own risk. // Could someone please explain why the universe authorization isn't enough. // Ok, this time I've succesfully connected to the stagecoach universe ;) #define WIN32_LEAN_AND_MEAN #include <stdio.h> #include <tchar.h> #include <windows.h> #include "aw.h" // Remove the need for license.awsdk void license_bye(void) { UCHAR *p; // Get addresses of API hook HMODULE hmod = GetModuleHandle(_T("aw")); // aw.dll must be loaded already UCHAR *init = (UCHAR*)GetProcAddress(hmod, "aw_init"); // Copy the real API address memcpy(&init, init + 1, sizeof(UCHAR*)); // Patch aw_init aw_init(AW_BUILD); // load first chunk of aw_init into memory // Skip the call to license.awsdk loader p = init + 0x18; *p++ = 0xEB; // jmp short $+0Ah *p = 0x0A; // Get address of license.valid and set it to indicate a valid license memcpy(&p, init + 0x28, sizeof(p)); *p = TRUE; // Get address of license.expiration_time and set it to a high value memcpy(&p, init + 0x14, sizeof(p)); p += 0x418; // offset of expiration_time *p++ = 0xFF; // unix time 0x7FFFFFFF *p++ = 0xFF; *p++ = 0xFF; *p = 0x7F; // No need to patch aw_create_resolve because, // license.address and license.port are both 0 by default which means they're // not compared to where the users wants to connect // license.limit is 0 by default which means no limit for the number of instances } void handle_universe_attributes(void) { printf("Universe attributes\n"); } int _tmain(int argc, _TCHAR* argv[]) { license_bye(); int rc = aw_init(AW_BUILD); if (rc) { printf("Reason code %d; init isn't working mmmkay?", rc); return 1; } rc = aw_create("stagecoachisland2.com", 5891, NULL); if (rc) { printf("Reason code %d; you're not connecting mmmkay?", rc); return 1; } aw_event_set(AW_EVENT_UNIVERSE_ATTRIBUTES, handle_universe_attributes); aw_string_set(AW_LOGIN_NAME, "your name"); aw_int_set(AW_LOGIN_OWNER, /*your number*/1); aw_string_set(AW_LOGIN_PRIVILEGE_PASSWORD, "your privilage password"); aw_string_set(AW_LOGIN_APPLICATION, "awSDK60Crack"); if (rc = aw_login()) { printf ("Reason code %d; not logged in mmmkay?\n", rc); return 1; } for (;;) { rc = aw_wait(-1); if (rc) { printf("Reason code %d; while waiting mmmkay?\n", rc); return 1; } } aw_destroy (); aw_term (); return 0; } ------=_NextPart_000_0017_01C69478.6ABC9CD0-- 4.1 Preston now availableJun 13, 2006, 1:33pm
"Ima Genius" <ima at imatowns.com> skrev i meddelandet news:448ed37b$1 at server1.Activeworlds.com...
> Reason 518 is actually a license error. It can be caused if you have the wrong universe entered. Please make sure you leave > the universe field blank. aw_init; makes sure the license is valid and hasn't expired aw_create_resolved (called by aw_create); same as aw_init but also checks universe address/port and maximum number of instances aw_wait; same as aw_init aw_enter; same as aw_init > There is also a bug in the SDK where you may get this error if you do not have the license.awsdk file in the working directory > of your program. If you are running Preston from a shortcut, you may receive this error :) > - Ima If this horrible thing is here to stay then they have to add a function to the sdk where you specify the path of the license to load. (Called before aw_init) I'm hoping they will come to their senses and get rid of sdk licenses soon. Because it doesn't add anything useful that can't be solved in a way that's transparent to the user. And it's no longer possible to log bots into multiple univereses with a single instance of the sdk. -- Slippery E Prevent blocking telegrams by accidentJan 9, 2006, 10:19am
I don't like how "Block telegrams from..." shows up right below "Delete" when you rightclick a telegram.
A separator and/or confirmation dialog for Block Telegrams should be added. -- Slippery E "Undocumented" 4.1 FeaturesJun 11, 2006, 5:50am
* Support for more image formats includes ico, wmf, emf and tif
|