slippery e // User Search

slippery e // User Search

1  |  

license.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 available

Jun 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 accident

Jan 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 Features

Jun 11, 2006, 5:50am
* Support for more image formats includes ico, wmf, emf and tif

1  |  
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn