Skip to content

Instantly share code, notes, and snippets.

@steelywing
Last active December 14, 2025 10:47
Show Gist options
  • Select an option

  • Save steelywing/321a181651af3e14c0f2 to your computer and use it in GitHub Desktop.

Select an option

Save steelywing/321a181651af3e14c0f2 to your computer and use it in GitHub Desktop.
winimage 9.0 keygen
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>WinImage 9.0 KeyGen</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body style="text-align: center;">
<h1>WinImage 9.0 KeyGen</h1>
<h4>
base on
<a href="https://onedrive.live.com/?cid=EBF98104367345AF&id=EBF98104367345AF!273">
Marcelo Carvalho KeyGen
</a>
</h4>
<hr>
<form id="key-gen">
<input id="name" type="text" placeholder="Name">
<button id="generate" type="submit">Generate</button>
</form>
<h2>Registration Code</h2>
<div id="code"></div>
<script>
function shift8b(name) {
return name.replace(/[8B]/, function (match) {
return match == '8' ? 'B' : '8';
});
}
function getCode(name) {
var professionals_code = [0x10051981, 0x4011995, 0x2061997, 0x12091999, 0x16062004, 0x21042002, 0x13062004, 0x9112005, 0x24112005],
codes = [],
length = name.length,
v = length,
code = 0x47694C; // Magic String Standard Version
name = name.toUpperCase();
for (var i = 0; i < length; i++) {
if ((i % 14) == 0) {
v = 39;
}
code += v * name.charCodeAt(i);
v *= ((i + 3) % 14) ? 3 : 7;
}
// standard registration code
// codes.push(shift8b(code.toString(16).toUpperCase()));
for (var i = 0; i < professionals_code.length; i++) {
// Magic String Professional Version
codes.push(shift8b(
(code + professionals_code[i]).toString(16).toUpperCase()
));
}
return codes;
}
function onClickKeyGen(e) {
var nameNode = document.getElementById('name'),
codeNode = document.getElementById('code');
codeNode.innerHTML = getCode(nameNode.value).join('<br>');
// for IE
if (!e) return false;
e.preventDefault();
}
var keyGenNode = document.getElementById('key-gen');
if (document.addEventListener) {
keyGenNode.addEventListener('submit', onClickKeyGen);
} else {
// for IE
keyGenNode.onsubmit = onClickKeyGen;
}
</script>
</body>
</html>
@jamesy0ung
Copy link

nice keygen

@Magicrafter13
Copy link

It's kinda sad how simple the author's keygen was that you were able to create a basic html page that uses the same algorithm. I'll probably give him a pity donation someday, because I do enjoy the software.

@aymanoz
Copy link

aymanoz commented Aug 26, 2020

its working with me , I use version 10 👍

@ADawsome
Copy link

ADawsome commented Oct 8, 2021

I use version 10 and it worked fine.

@Bang1338
Copy link

Bang1338 commented Jan 2, 2023

do you still holding the original source code from Marcelo Carvalho?

@Dobrofiner
Copy link

it is works!

@normanr
Copy link

normanr commented Jul 13, 2025

For long names, line 54 needs to be changed to:

((code + professionals_code[i]) >>> 0).toString(16).toUpperCase()

@AttakDoge
Copy link

Version 11 seems to work

@ahwm
Copy link

ahwm commented Dec 4, 2025

For long names, line 54 needs to be changed to:

((code + professionals_code[i]) >>> 0).toString(16).toUpperCase()

It wasn't initially working but this fixed it.

@sl1pkn07
Copy link

not works at all in version 11. after register, when close the app and open again, say unregister again

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