Hmm maybe someone wants to try this:
1) Decrypt the file using the script in my above post: (You'll need a lua.exe, for example from h**p://sourceforge dot net/projects/lua511wow (not able to post links, post count too low), then put the script below in a file named i.e. test.lua and call "lua.exe test.lua", the original Carbonite.lua has to be in the same folder.)
Code:
mo = io.open("Carbonite.lua", "rb+");
mor = mo:read("*all");
mor = string.gsub(mor, "loadstring", "moritz");
mori=io.open('output.txt', 'w');
function moritz(data)
if (string.sub(data, 1, 3) == "z='") then
print("resending");
data = string.gsub(data, "loadstring", "moritz");
loadstring(data)();
return function() end;
end
mori:write(data.."\n");
return function() end;
end
loadstring(mor)();
mori:close()
mo:close();
2) Use this script (call in the comman line) after you changed name and server for your char:
Code:
local realmName="TestRealm"
local playerName="TestName"
--create for ordoself
local notbreaklol=""
local thenor=12-#playerName
thenor=thenor>5 and 5 or thenor
for count=1,thenor do
local byteRealm=strbyte(realmName,count) or 0x55
notbreaklol=notbreaklol .. strchar(bit.bxor(bit.bxor(byteRealm,0xaa),count))
end
for count=thenor+1,12 do
local byteRealm=strbyte(realmName,count) or 0x55
local bytePlayer=strbyte(playerName,count-thenor) or 0xaa
local whilenot=bit.bxor(bit.bxor(byteRealm,bytePlayer),count)
if whilenot<0 or whilenot>255 then
break
end
notbreaklol=notbreaklol .. strchar(bit.bxor(bit.bxor(byteRealm,bytePlayer),count))
end
s=""
m = notbreaklol
for i=1,12 do
x = strbyte(m, i);
a = math.floor(x/16);
b = x%16;
a=a+87>=97 and a+87 or a+48
b=b+87>=97 and b+87 or b+48
s=s..strchar(a)..strchar(b)
end
print(s);
3) Open output.txt and search for "ecdddbdbcd34111014f5f4f3" replace with the code you got above.
4) Also in output.txt:
Search for
Code:
function Nx.localxor:doforself() return 'Gurubashi', 'Sept' end
and replace with your server / name, although i think this maybe just for displaying the Error message that it is registered to another person.
4) To remove the time limit (well I guess) search for:
Code:
local thisendnot=990000+0100+01 local thisendnot=080000+0600+03
and remove the last part which i think makes it expire on 3rd june 2008 to make it look like
Code:
local thisendnot=990000+0100+01
(their development time expire date i guess
)
Now rename output.txt to Carbonite.lua and replace the original one. I don't know if this works (no wow account atm) but a freind reported no error msg of any kind on startup. (This is for the 1.68 version posted in this thread only.)
Edit: (Just btw there is a second 12 char string like the one in 3) I guess this is some kind of a download unique string so that you cannot use a config.wtf from a different download that the same person made, i.e. when a new version is released old config.wtf's stop working).
Edit2: I of course know I could have put all that into one file, making some kind of autopatch, but since I don't even know if it really works correct I have splitted it into as many parts as needed to make it easier to understand.
Edit3: corrected mori:write(data.."\n"); to mori:write(data.."\\n"); because the \ needs to be escaped in the forum code sections