Skip to content

Instantly share code, notes, and snippets.

@praswicaksono
Last active July 3, 2023 15:51
Show Gist options
  • Save praswicaksono/dac438e1f501fae0917b to your computer and use it in GitHub Desktop.
Save praswicaksono/dac438e1f501fae0917b to your computer and use it in GitHub Desktop.
AfterLogic Webmail Pro + Aurora Keygen
<?php
Class Keygen {
private $serial;
private function randChar($length = 8) {
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for ($p = 0; $p < $length; $p++) {
$string .= $characters[mt_rand(0, strlen($characters)-1)];
}
return $string;
}
public function getHashKey($version)
{
$return = base64_decode('NEpVVjNIU1dJVDU1R1I2UjJGUVhaQkxaRVA3NzFETllDTThNQUs5OQ==');
if (2 === $version) { // Webmail Pro
$return = base64_decode('MkZRWDNIU1c0SlVWSVQ1NUdSNlJBSzk5WkJMWkVQNzcxRE5ZQ004TQ==');
} else if (3 === $version) { // Aurora
$return = base64_decode('M0hTVzJGUVhaQkxaQ004TUFLOTlJVDU1RVA3NzFETllHUjZSNEpVVg==');
}
return $return;
}
public function divideByFour($version, $char)
{
$result = strpos($this->getHashKey($version), $char);
return (false !== $result) ? (int) floor($result / 4) : false;
}
public function generate($version = 2) {
if ($version == 2) {
$this->serial .= "WM700-";
} elseif ($version == 3) {
$this->serial .= "AU700-";
} else {
return "Error version not found";
}
$var = rand(0,9);
$var4 = $this->randChar(1);
while($this->divideByFour($version,$var4) % 2 == 0)
{
$var4 = $this->randChar(1);
}
$this->serial .= $this->randChar(27).$var4.'-'.$var;
$var2 = ($var * 7 + 7) % 10;
$this->serial .= $var2.rand(0,9).rand(0,9);
$var3 = $this->randChar(1);
while($this->divideByFour($version,$var3) != 0)
{
$var3 = $this->randChar(1);
}
$this->serial .= $var3.$this->randChar(4);
return $this->serial;
}
}
$obj = new Keygen();
// 2 for webmailpro and 3 for aurora
print_r($obj->generate(3));
@eslamene
Copy link

eslamene commented Jun 2, 2015

Thank You so much u saved me 😄

@facilitator007
Copy link

nice! i tried this on my new installation but it could not activate showing invalid message, do u ve some fix for latest version plz. thnx

@jaumeruiz
Copy link

Hola, disculpad una pregunta, soy nuevo con el After logic, donde y como se pone este codigo?
y a poder ser podeis responderme por el correo jruiz.smx@gmail.com
Gracias!

@Phukit
Copy link

Phukit commented Mar 26, 2018

Hi,

can you please update for the new webmail pro 8?

Thanks

@gutierrez100
Copy link

Thank you!
Could you update for the new version webmail pro 8?

@lazzaronetu
Copy link

news for version 8?

@gutierrez100
Copy link

I'm still waiting 👍

@yoda1490
Copy link

yoda1490 commented Jun 21, 2018

In: ./modules/Licensing/Module.php
Replace function GetLicenseInfo:

public function GetLicenseInfo($Module = 'System')
{
$mResult = false;
$aInfo = $this->GetPartKeyInfo($Module);
if (isset($aInfo[2]))
{
$mResult = array(
'Count' => (int) $aInfo[0],
'DateTime' => $aInfo[1],
//'Type' => (int) $aInfo[2],
'Type' => 0,
//'ExpiresIn' => $aInfo[1] !== '' ? ceil(((int) $aInfo[1] - time()) / 60 / 60 / 24) : '',
'ExpiresIn' => 200,
);
}
return $mResult;
}

@Briesmi
Copy link

Briesmi commented Nov 24, 2018

Thx, yoda1490!

@gpopesc
Copy link

gpopesc commented Mar 9, 2021

Thank you @yoda1490.
The trick still working 👍

@pkumar3910
Copy link

Hello ,any help me how can disable LicenseKey with webmail pro 9

@gpopesc
Copy link

gpopesc commented Jan 29, 2022

just follow the instruction of @yoda1490, they are still working. Calendar and tasks will be disabled after trial period expire. Contact and files are working fine.

@leylandcn
Copy link

just follow the instruction of @yoda1490, they are still working. Calendar and tasks will be disabled after trial period expire. Contact and files are working fine.

same here and you can not use it over 20 users

@praswicaksono
Copy link
Author

Just checked new version, they change algorithm using asymmetric cryptography using openssl im afraid it wont be possible to keygening but another method still possible by returning correct response from trial key

@alipour66m
Copy link

Hello
I NEED AFTERLOGIC v9 crack or keygen

@z3d3m0n
Copy link

z3d3m0n commented Oct 8, 2022

Just checked new version, they change algorithm using asymmetric cryptography using openssl im afraid it wont be possible to keygening but another method still possible by returning correct response from trial key

Have you managed to crack the trial key of 9.6 ?

@shaniqbal
Copy link

did anyone manage to crack or patch the new version 9.6?

@jiripaskov
Copy link

Hello, anybody to crack 9 version? @yoda1490 tip is still working with V9?

@rapsys
Copy link

rapsys commented Nov 28, 2022

Edit file modules/Licensing/Module.php

In protected function getKeyInfo(), after $this->keyInfo = $oKI->GKI($sKey); add var_export($this->keyInfo); exit;

Add a trial key to data/settings/config.json

Add $this->keyInfo = [...]; in place of your var_export & exit with fixed content.

Enjoy ;)

ps : I wouldn't have bothered to post that if afterlogic had allowed a single or two user with full features by default

@rapsys
Copy link

rapsys commented Nov 28, 2022

Maybe a replay attack can be done by replacing KI.php and license file with an old one from :
afterlogic/aurora-module-licensing@e30a52f#diff-a8b460e8fea5607a2b05effa9f6512e5271f1e26ca6ab7890c7eab58cfc1e54c

Or someone may develop a replacement from unobfuscated KI.php https://www.unphp.net/

Or create a new generator with a self-generated public/private key pair and replace modules/Licensing/classes/AU80.key

Wasted 2 hours on that, so better save all vectors

ps : If you like their product please send them some money if you are not poor like me :)

@rapsys
Copy link

rapsys commented Nov 28, 2022

If there is more modules to activate than System, Calendar, CoreMobileWebclient and MailMultiAccountsPlugin tell me.

@mtcoliveira
Copy link

Edit file modules/Licensing/Module.php

In protected function getKeyInfo(), after $this->keyInfo = $oKI->GKI($sKey); add var_export($this->keyInfo); exit;

Add a trial key to data/settings/config.json

Add $this->keyInfo = [...]; in place of your var_export & exit with fixed content.

Enjoy ;)

ps : I wouldn't have bothered to post that if afterlogic had allowed a single or two user with full features by default

I think this is not working anymore in 9.7.1

@praswicaksono
Copy link
Author

Maybe a replay attack can be done by replacing KI.php and license file with an old one from : afterlogic/aurora-module-licensing@e30a52f#diff-a8b460e8fea5607a2b05effa9f6512e5271f1e26ca6ab7890c7eab58cfc1e54c

Or someone may develop a replacement from unobfuscated KI.php https://www.unphp.net/

Or create a new generator with a self-generated public/private key pair and replace modules/Licensing/classes/AU80.key

Wasted 2 hours on that, so better save all vectors

ps : If you like their product please send them some money if you are not poor like me :)

Unobfuscate is really just rename variable using hex editor, format the code and debug using xdebug. you just return correct array from KI.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment