Go Back   GamerzPlanet - For All Your Online Gaming Needs!! > gPotato Games > Luna Online

Luna Online Discuss anything related to Luna Online. Luna Online hacks


bypass tutorial

Luna Online


Reply
 
Thread Tools Display Modes
Old 02-26-2009, 09:54 PM   #1
gn11317688
Registered User
 
Last Online: 03-31-2009 06:26 AM
Join Date: Feb 2009
Posts: 14
Rep Power: 0
Rep Points: 10
gn11317688 is on a distinguished road
Feedback: (0)
Points: 3,176.12
Bank: 0.00
Total Points: 3,176.12
bypass tutorial

i hope i can contribute some effort in creating the bypass by pasting below article




~ UCE Tutorial ~
02/03/2007
Tutorial compiled together by me, from other peoples tut's. Credits at the bottom.

1. Programs Needed
-
[Only registered and activated users can see links. ] (Not neccesary, but makes things easier.)

Code:Actual Search & Replace key:
IKiZhZL170UUvtoyVN5ginTgPygyaoVTh1+lRilFhOUMZaSlzn NQKzPyWCxer7XsmolMvwx+hj5kblpQ5ZJ6FE1

- [Only registered and activated users can see links. ]
-
[Only registered and activated users can see links. ]
-
[Only registered and activated users can see links. ]

Keep a piece of paper and a pencil handy, or just open NotePad/WordPad. You will be changing string's to different names so you'll need to know what you changed them to.

2. Making the DBK32.sys

2a. Locate and open the file Driver.dat in the main CE Source with NotePad. Then you will rename the variables to something of your choice. (*Note: I have changed all the variables in to the word 'Whatever' with a number, starting with 1 and so on.)

CEDRIVER53 ---> Whatever1
DBKProcList53 ---> Whatever2
DBKThreadList53 ---> Whatever3
dbk32.sys ---> Whatever.sys



2b. Open the DBKKernel folder, then open DBKDrvr.c with NotePad.
Use the find function and type in "hideme".
Ignore the first result, and the second search result that appears should say: "//hideme (DriverObject)". Delete the // in front of hideme.
(*Note: This may cause the Blue Screen of Death for some users.)



2c. Open the files "SOURCES" and "sources.ce" with NotePad in the DBKKernel folder and replace them.

"TARGETNAME=DBK32" ---> "TARGETNAME=Whatever"

2d.
Using ASR, Path:(Main Source Folder)with the mask (memscan.c; DBKDrvr.c),
(Include Subfolders)
search and replace the following:

KeStackAttachProcess((PKPROCESS)selectedprocess,&a pc_state); ----> KeAttachProcess((PEPROCESS)selectedprocess);
KeUnstackDetachProcess(&apc_state); ----> KeDetachProcess();

2e. Step Deleted - I don't know why this step doesn't work, but its not really needed.

2f. Now we'll compile the Whatever.sys (the file you changed DBK32.sys into).
Go to the DBKKernel directory and copy the address.
(*Note: Mine is "C:\Cheat Engine Delphi\Cheat Engine Delphi\DBKKernel" you may have saved yours some where else.)

Now open Windows XP Free Build, or Windows 2000 Free Build (Whichever version of windows your using.)

Start > All Programs > Development Kits > Windows DDK > Build Environment > Windows XP > Windows XP Free Build Environment

When it opens, it will look like the DOS Prompt. All you do is type "cd "
(*Note: Add a space after 'cd' then Right Click > Paste. Press Enter.

After, that, type in "ce" and press Enter again. You'll see a lot of text scramble by. Once it finishes, you should see "7 files compiled, 1 executable built", now you can close out.



3. Replacing Detected Strings

Open dbk32 folder, and open up "dbk32.dpr" with Delphi.
Go to View > Project Manager and expand "dbk32.dll".
Double click on "DBK32functions" to open.
Now Replace the following:

CEDRIVER52 ---> Whatever1 (This is the same thing as CEDRIVER53)
DBKProcList51 ---> Whatever2 (This is the same thing as DBKProcList53)
DBKThreadList51) ---> Whatever3 (This is the same thing as DBKThreadList53)



Once finished, Save all and close.

Now open Actual Search and Replace.

Go to File > Settings > Editor. Find your "delphi32.exe" file. Then press ok.
(*Note: It will most likely be under: "C:\Program Files\Borland\Delphi7\Bin\delphi32.exe"

Under the 'Options' tab, tick the box that says "include subfolders".
(*Note: Remember where this box is, you will be using it a lot.)

Under "Masks" enter: newkernelhandler.pas; DBK32funcionts.pas; DBK32.dpr
(*Note: Make sure you use a(n) semi-colon ( ; ) after each.)

Under "Path" input your main Cheat Engine directory.

Finally, tick the box under Mask that says "whole words".
(*Note: Whenver you press modify, you are modifying a file, NOT a line.)





Here are the list of detected strings you will be renaming:
(*Note: I went ahead and renamed them all, keeping with the "Whatever#" theme. This is where the piece of paper & pencil / Note/WordPad come in handy.)

VQE ---> Whatever4
OP ---> Whatever5
OT ---> Whatever6
NOP ---> Whatever7
RPM ---> Whatever8
WPM ---> Whatever9
VAE ---> Whatever10
CreateRemoteAPC ---> Whatever11
ReadPhysicalMemory ---> Whatever12
WritePhysicalMemory ---> Whatever13
GetPhysicalAddress ---> Whatever14
GetPEProcess ---> Whatever15
GetPEThread ---> Whatever16
ProtectMe ---> Whatever17
UnprotectMe ---> Whatever18
IsValidHandle ---> Whatever19
GetCR4 ---> Whatever20
GetCR3 ---> Whatever21
SetCR3 ---> Whatever22
GetSDT ---> Whatever23
GetSDTShadow ---> Whatever24
setAlternateDebugMethod ---> Whatever25
getAlternateDebugMethod ---> Whatever26
DebugProcess ---> Whatever27
StopDebugging ---> Whatever28
StopRegisterChange ---> Whatever29
RetrieveDebugData ---> Whatever30
GetThreadsProcessOffset ---> Whatever31
GetThreadListEntryOffset ---> Whatever32
GetDebugportOffset ---> Whatever33
GetProcessnameOffset ---> Whatever34
StartProcessWatch ---> Whatever35
WaitForProcessListData ---> Whatever36
GetProcessNameFromID ---> Whatever37
GetProcessNameFromPEProcess ---> Whatever38
GetIDTCurrentThread ---> Whatever39
GetIDTs ---> Whatever40
MakeWritable ---> Whatever41
GetLoadedState ---> Whatever42
ChangeRegOnBP ---> Whatever43
DBKSuspendThread ---> Whatever44
DBKResumeThread ---> Whatever45
DBKSuspendProcess ---> Whatever46
DBKResumeProcess ---> Whatever47
KernelAlloc ---> Whatever48
GetKProcAddress ---> Whatever49
Protect2 ---> Whatever50
test ---> Whatever51
useIOCTL ---> Whatever52
DBKGetDC ---> Whatever53

3a. Now it's time to save newkernelhandler.pas, DBK32functions.pas, and DBK32.dpr as new names.

Open the 3 files mentioned above. (Newkernelhandler is found in the main directory. The other 2 files are located in the DBK32 Folder)

After opening them, go to File > Save As.

DBK32.dpr ---> Whatever.dpr (Save in dbk32 folder. You'll notice that "library DBK32" has changed to "library whatever")

DBK32functions.pas ---> Whateverfunctions.pas (Save in dbk32 folder. You'll notice in Project Manager that "DBK32functions.pas" has changed to "whateverfunctions.pas")

NewKernelHandler.pas ---> Whateverhandler.pas (Save in the main CE folder.)

Save All and Close.

3b. Now, search & replace the following in all files. Set "Mask" as *.* (Include Subfolders)

dbk32.sys ---> whatever.sys

dbk32.dll ---> whatever.dll



Now open whatever.dpr in Delphi. We will now compile whatever.dll.
Go to Project > Compile whatever.
Now, if you get "[Warning]" or "[Hint]" your fine. If you get "[Error]" then you've done something wrong and have to recheck all the steps.



If you didn't recieve any errors, then whatever.dll will be in your main CE folder.

3c. Making CEHook

Use Actual Search and Replace again; Search for "myhook" (Include subfolders).

Rename myhook in the files CEHook.dpr and hypermode.pas ONLY.

myhook ---> Whatever54

Open CEHook.dpr with Delphi, located in the CEHook folder.

We'll comment out "system;" under "uses".
(*Note: To comment out, Add "//" before 'system'.)

After commenting it out, compile it.



3d. Creating Stealth

Go to Stealth folder, and open up stealth.dpr.

Compile it. ~ Thats it for this step!

3e. Renaming NewKernelHandler and CeFuncProc

Open cheatengine.dpr from your main CE folder.

Go to Project Manager and open 'NewKernelHandler.pas' & 'CeFuncProc.pas'.

Go to File > Save As. Save into your main CE folder.

NewKernelHandler.pas ---> WhateverHandler.pas (*Note: It will ask you if you want to replace, select 'Yes'.)

CeFuncProc.pas ---> Whatever55.pas

Save and close.

Use search and replace, and search for NewKernelHandler and CeFuncProc. (Do NOT include subfolders!). Mask is *.*

NewKernelHandler ---> WhateverHandler (Change it in every file EXCEPT the "NewKernelHandler.pas" file.)

CeFuncProc ---> Whatever55

3f. Changing Value Strings (Hex Values)

The values that we will be changing are: 00400000 , 7FFFFFFF , 80000000.
(*Note: We will be changing them into different values, NOT into letters/names.)

We'll use the basic windows calculator.

Go to Start > All Programs > Accesories > Calculator

Once open, click View > Scientific > Hex



Now, first enter one of the values (eg. 00400000).
Then, click the 'Dec' button and add a number. (Ex. +5. Do not subtract, as it may lead to errors in the future.)
Now, after you added a #, click on the 'Hex' button again and you will get your new value.

Now use Search and Replace and replace the old values with the new ones. (Include Subfolders!) Mask is *.*

Below are the examples I'm using, in which I added 5 to all.

00400000 ---> 00400005

7FFFFFFF ---> 80000004

80000000 ---> 80000005

3g. Changing words within the CheatEngine GUI

Now search (Do NOT include subfolders) and change:

nextscanbutton ---> Whatever56

scanvalue ---> Whatever57

scanvalue2 ---> Whatever58

ScanType ---> Whatever59

VarType ---> Whatever60

newscan ---> Whatever61

ScanText ---> Whatever62

syndic.com/ce ---> live.com (Change it to any website you want)

Next open up MainUnit.pas with Delphi and locate the following:

if messagedlg('Do you want to try out the tutorial?',mtconfirmation,[mbyes,mbno],0)=mryes then
shellexecute(0,'open','Tutorial.exe','','',sw_show );

Replace the "Tutorial" with "Project1" like this:

if messagedlg('Do you want to try out the tutorial?',mtconfirmation,[mbyes,mbno],0)=mryes then
shellexecute(0,'open','Project1.exe','','',sw_show );

Now save and close it

Now open up OpenSave.pas with Delphi and locate the following:

7 "Tutorial.exe":Application processname
Replace "Tutorial" with "Project1" like so:

7 "Project1.exe":Application processname (This is not detected, but change it so it will open up Project1 when prompted)

Then in openSave.pas with Delphi and locate the following: (this is only for CE 5.3)

if x<>'WhateverEngine' then
raise exception.Create('This is not a valid Whatever Engine table');
Now comment it out like so:

//if x<>'WhateverEngine' then
//raise exception.Create('This is not a valid Whatever Engine table');

Doing this will allow you to open other Cheat Tables(.CT), which are not saved by your engine.

Now save and close it .

3h. Now use search again. (Do NOT include subfolders) Mask is *.pas.
Change the following:

CheatEngine ---> WhateverEngine

cheat engine ---> Whatever Engine

3i. Configuring the Cheat Engine GUI

Open cheatengine.bpg from the main CE directory.
Using Project Manager, open "MainUnit" which is under "Cheatengine.exe".
Double clicking it will make the Cheat Engine GUI pop up.



In the GUI, look for the words "scan type" and "value type" faded in grey. Click on the drag down box next to scan type. Here we are just checking if you changed your strings correctly. After clicking the drop down menu box. Look to the left of the screen under Object Treeview and Object Inspector. Hopefully under Object Treeview, Whatever59 is highlighted. Now look at Object Inspector and scroll down until you see "name". Hopefully right next to it, there is a box that says Whatever59 also.

If you did this step correctly, repeat it with 'value type'.

Finally, click on the labels "ProtectMe2" and "crash me" which are next to the red pointer on the GUI. Click on them and look inside 'Object Inspector'. Go to "caption" and delete the words there. Do NOT click on them and press delete, we still want them to be there, just no captions.

3j. Compiling cheatengine.exe

View project manager and click on the drop down menu.
Make sure 'Cheatengine.exe' is selected and NOT cheatengine.DEU, cheatengine.NLD, or cheatengine.RUS



Now, minimized Delphi and go to your main CE folder.
Right click in any empty space and select New > Text Document.
Rename that text document to "trainerwithassembler.exe"

Now go back into Delphi and Compile it.

After you attempt to compile, you WILL get errors. The first error you will get is:

[Error] autoassembler.pas(531): Undeclared identifier: 'KernelAlloc'

Look back to all the files you renamed (that you either wrote down or typed in Note/WordPad). Find what you renamed it to and change it. In this tutorial I used 'Whatever50'.

Now, After you've fixed this error, re compile it. You may / may not get more errors, if you do, fix them and re compile until you have no errors left.

4. Finishing

4a. Compiling Needed Files for UCE

Open Delphi.

(With Delphi) Open "systemcallsignal.dpr" in the 'SystemcallRetriever' folder. Compile.

Open "Systemcallretriever.dpr" in 'SystemcallRetriever' folder. (You will get some errors, so change them.)

Open "Kernelmoduleunloader.dpr" in the sub folder 'dbk32 \ kernelmodule unloader' folder.

4b. Other Stuff

First, make a copy of your edited source before you proceed, in case you make a mistake.

Now, Open "cheatengine.bpg" from your main directory; then "Save As" whateverengine.bpg in main directory. Then Close.

Reopen "cheatengine.bpg" from the main directory and Right Click on "cheatengine.exe" and select "View Source".

Save "cheatengine.dpr" as whateverengine.dpr & compile it and you will get "WhateverEngine.exe" (Your CE executable)
(*Note: The name "cheatengine.exe" in your Project Manager should change to "whateverengine.exe".)

4c. Compile all of these using Delphi:

- Pscan.dll (Pscan.dpr in injectedpointerscan folder)

- emptydll.dll (emptydll.dpr in SystemcallRetriever folder)

- emptyprocess.exe (emptyprocess.dpr in SystemcallRetriever folder)

- systemcallsignal.exe (systemcallsignal.dpr in SystemcallRetriever folder)

- Systemcallretriever.exe(change anything if needed) (Systemcallretriever.dpr in SystemcallRetriever folder)

- Kernelmoduleunloader.exe (Kernelmoduleunloader.dpr in "dbk32\Kernelmodule unloader" folder)

- Project1.exe (Project1.dpr in Tutorial folder)

4d. Files

Now you should have all of these files, so make a new folder and put them in it.

whateverengine.exe

driver.dat

whatever.sys

whatever.dll

stealth.dll

cehook.dll

PScan.dll

systemcallsignal.exe

systemcallretriever.exe

kernelmoduleunloader.exe

emptydll.dll

emptyprocess.exe

Project1.exe

5. Testing Your UCE

Open your CE & change the settings according to the pictures below. They will most likely work, but if not, just mess with it a little.




File Associations ---> Don't tick ANYTHING

Plugins ---> Don't tick ANYTHING







IF reboot. Then dbk32.sys is detected. Remove it. IF detected again dbk32.dll detected. Remove. IF deteced AGAIN, just play around. I can't help you from there.

Optional Stuff

Changing Version Info. - Select Cheatengine.exe in Project Manager and "right click > Options". Click "Version Info" tab. If you do not want anything at the bottom to show, untick the box that says "include version.....". Other than that, you can also edit the words at the bottom like Company Name and File Description.
Changing Application Name, Help File and Icon. - Click the tab "Application" and from there, stuff is pretty self explanatory.
Changing Settings and About section. - In Project Manager, open up the files "formsettingsunit" and "aboutunit". Click on the things that you want to edit and change the captions in Object Inspector. (Give credz to Dark Byte for making this source).


gn11317688 added 3 Minutes and 39 Seconds later...< --- Please use the edit button in the future--- >

hope will help u all

KEY: * means All and *.* means All ( first * means ALL file names , second * means ALL file extensions )

** I will be updating this tut and fixing it.

************************************************** **********

1st STEP: Downloading necessary files
[Only registered and activated users can see links. ]

DELPHI 7e-Find your own copy.

[Only registered and activated users can see links. ]

[Only registered and activated users can see links. ]

[Only registered and activated users can see links. ]

[Only registered and activated users can see links. ]

(it doesnt matter which source you use, but in order to use the loadbinary function, you need to use 5.3)

************************************************** *********

NEXT STEP: DEBUGGER FIXES/DETECTION FIXES

Ok, the first debugger fix is given to us by DarkByte, and is for GameGuard Revision 822/826...

We will not be doing the interrupt1 fix right now, because it is included in 833 fix...

Download and extract to your DBKKernel folder:
[Only registered and activated users can see links. ]

Open memscan.c and add #include "jumper.h" to the list of #includes,
Open DBKDRVR.c and add #include "jumper.h" to the list of #includes.

Keep DBKDRVR open, because we now have to fix memaccess.

Search the word "driverentry" in dbkdrvr.c; now replace "driverentry" in the search box with "return ntstatus;" Press find until you come to the 3rd one and add this code before it...

Code:
{
UNICODE_STRING y;
RtlInitUnicodeString(&y, L"KeAttachProcess");
AddressOfKeAttachProcess=MmGetSystemRoutineAddress (&y);
}




So it looks like...

Code:
ExFreePool(BufDriverString);
ExFreePool(BufProcessEventString);
ExFreePool(BufThreadEventString);

ZwClose(reg);
{
UNICODE_STRING y;
RtlInitUnicodeString(&y, L"KeAttachProcess");
AddressOfKeAttachProcess=MmGetSystemRoutineAddress (&y);
}
return ntStatus;



Next, search for this line....UINT_PTR *processid and add this code...

Code:
if (*processid==0xdeadbeef)
{
*(PULONG)Irp->AssociatedIrp.SystemBuffer=(ULONG)&AddressOfKeAtt achProcess;
ntStatus=STATUS_SUCCESS;
break;
}


So it looks like....

Code:
{
UINT_PTR *processid;
PEPROCESS selectedprocess;
processid=Irp->AssociatedIrp.SystemBuffer;

if (*processid==0xdeadbeef)
{
*(PULONG)Irp->AssociatedIrp.SystemBuffer=(ULONG)&AddressOfKeAtt achProcess;
ntStatus=STATUS_SUCCESS;
break;
}
if (PsLookupProcessByProcessId((PVOID)(*processid),&s electedprocess)==STATUS_SUCCESS)
*(PULONG)Irp->AssociatedIrp.SystemBuffer=(ULONG)selectedprocess ;
else
*(PULONG)Irp->AssociatedIrp.SystemBuffer=0;

ObDereferenceObject(selectedprocess);

ntStatus= STATUS_SUCCESS;
break;
}



Open Source.ce and add jumper.c to the list.

After this is done, open Mainunit.pas in your main CE folder...Add the word "disassembler" to the list of uses.

Now search for the line

Code:
procedure TMainform.FormCreate(Sender: TObject);



Before it add this whole thing:

Code:
procedure fixmemaccess;
var KeAttachProcessAddress,x: dword;
s: string;
sl: tstringlist;

KiAttachProcessAddress: dword;
a,b: boolean;
i: integer;
DriversKeAttachProcessAddressAddress: dword;
oldprocesshandle: dword;
begin
oldprocesshandle:=processhandle;
try
loaddbk32;
UseDBKReadWriteMemory;
//query is needed too to scan, but thats up to the user

processhandle:=newkernelhandler.OpenProcess(PROCES S_ALL_ACCESS,false,GetCurrentProcessID);

//I don't even have to adjust the jxx instructions since all of them point to when it fails, so thats ok
KeAttachProcessAddress:=dword(GetKProcAddress('KeA ttachProcess'));
KiAttachProcessAddress:=0;

sl:=tstringlist.Create;
x:=KeAttachProcessAddress;

a:=symhandler.showmodules;
b:=symhandler.showsymbols;

symhandler.showmodules:=false;
symhandler.showsymbols:=false;


sl.Add('Kalloc(mymem,4096)');
sl.add('Kalloc(mymem2,4096)');
sl.add('');
sl.add('mymem2:');

sl.add('');
sl.add('mymem:');

s:='';
while (x<KeAttachProcessAddress+$200) and (s<>'ret 0004') do
begin
s:=disassemble(x);
s:=copy(s,pos('-',s)+2,length(s));
s:=copy(s,pos('-',s)+2,length(s));

if pos('call 8',s)>0 then
begin
KiAttachProcessAddress:=strtoint('$'+copy(s,pos(' ',s)+1,length(s)));
s:='call mymem2';
end;

sl.Add(s);
end;

//now generate the jumper for KiAttachProcess
if KiAttachProcessAddress=0 then raise exception.Create('No KiAttachProcess call found');
x:=KiAttachProcessAddress;
i:=4;

while (x<KiAttachProcessAddress+5) do
begin
s:=disassemble(x);
s:=copy(s,pos('-',s)+2,length(s));
s:=copy(s,pos('-',s)+2,length(s));

sl.Insert(i,s);
inc(i);
end;
sl.Insert(i,'jmp '+inttohex(x,8));

DriversKeAttachProcessAddressAddress:=getpeprocess ($deadbeef);
if DriversKeAttachProcessAddressAddress=0 then raise exception.Create('OMG YOU LOSER!');

sl.Add('');
sl.Add(inttohex(DriversKeAttachProcessAddressAddre ss,8)+':');
sl.add('dd mymem');

symhandler.showmodules:=a;
symhandler.showsymbols:=b;

if not autoassemble(sl,false) then raise exception.create('Auto assembler error.');

finally
processhandle:=oldprocesshandle;
end;
end;



For 5.2 users....add the line "fixmemaccess;" right before the line "hotkeypressed:=-1;" which is right after "procedure TMainForm.FormCreate(Sender: TObject);"

For 5.3 users....add the line "fixmemaccess;" right after the line "pluginhandler:=TPluginhandler.create;"

Now download
[Only registered and activated users can see links. ] and extract all to the Main CE source folder...Replace all.

Next go here for the rev 833 fix...
[Only registered and activated users can see links. ]

That is all for the Register Fixes...
(But unless we find an int1 bypass we can't use registers anyway.)
FOR UNDETECTING IN REV 878:

Code that is detected for rev 833 in mainunit.pas:

Code:
if err>0 then
begin
if res=-1 then
begin

end;

ok:=res=mryes;

if (res=mryes) or (res=mrno) then
res:=-1; //reset
end
else
ok:=true;


end else ok:=true;



(it may be a bit different in CE 5.2)

Add more variables and junk code. My code that is undetected is this(5.2):

Code:
if err>IQ then
begin
if res=X then
begin
res:=messagedlg('The record with description '''+memrec[i].Description+''' has as interpretable address '''+memrec[i].interpretableaddress+'''. The recalculation will change it to '+symhandler.getNameFromAddress(memrec[i].Address+calculate,true,true)+'. Do you want to edit it to the new address?',mtconfirmation,[mbyes,mbno,mbNoToAll,mbYesToAll,mbCancel],0);
if res=mrcancel then exit;
end;

ok:=res=mryes;

if (res=mryes) or (res=mrno) then
res:=X; //reset
end
else
ok:=true;



and under variables i put:

Code:
var newaddress:dword;
calculate: Integer;
i,j,err: Integer;
selectedi: Integer;
X: Integer;
IQ: Integer;

firstispointer,dontdopointers: boolean;
re: string;
ok: boolean;

res: integer;



After the first begin:

Code:
begin
res:=-1;
X:=-1;
X:=X;
IQ:=0;
IQ:=IQ;

//first find out how many where selected.(from here on i didnt touch)
i:=0;
selectedi:=0;
while (i<numberofrecords) and (selectedi<2) do
begin



(u can do the same thing for 5.3, just edit the IQ and X part...)

REV 878 FIX:

The code that is detected in disassembler.pas:

Code:
function disassemble(var offset: dword; var description: string): string; overload;
var memory: TMemory;
actualread: dword;
startoffset: dword;
tempresult: string;
tempst: string;
wordptr: ^word;
dwordptr: ^dword;
dwordptr2: ^dword;
singleptr: ^single;
doubleptr: ^double;
extenedptr: ^extended;
int64ptr: ^int64;
i,j: integer;

prefix: TPrefix;
prefix2: TPrefix;
isprefix: boolean;

last: dword;
foundit: boolean;
begin
result:=inttohex(offset, 8 ) + ' - ';



Change it to this:


Code:
function disassemble(var offset: dword; var description: string): string; overload;
var memory: TMemory;
actualread: dword;
startoffset: dword;
tempresult: string;
tempst: string;
wordptr: ^word;
dwordptr: ^dword;
dwordptr2: ^dword;
singleptr: ^single;
doubleptr: ^double;
extenedptr: ^extended;
int64ptr: ^int64;
i,j: integer;

prefix: TPrefix;
prefix2: TPrefix;
isprefix: boolean;

last: dword;
foundit: boolean;

//just added this few lines to increment the bytes
A:string;
B:string;
C:string;
D:string;
E:string;
F:string;
G:string;
H:string;
K:string;
L:string;
M:string;
//just added this few lines to increment the bytes
begin

//just added this few lines to increment the bytes
A:='a';
B:='b';
C:='c';
D:='d';
E:='e';
F:='f';
G:='g';
H:='h';
K:='k';
L:='l';
M:='m';
//just added this few lines to increment the bytes

result:=inttohex(offset, 8 ) + ' - ';



(thanks to sphere90 for this dissassembler fix)


************************************************** **********

NEXT AND FINAL STEP: FIXING DETECTION OF THE REST OF CE


MAKING DBK32.SYS

1A)Find and open Driver.dat in the main source of your CE with notepad and replace the following strings...
CEDRIVER53 ----> Whatever1 (Strings may be different for 5.2 Source, but you get the concept)
DBKProcList53 ----> Whatever2
DBKThreadList53 ----> Whatever3
dbk32.sys ----> Whatever.sys

1B)Find and open DBKDrvr.c in your DBKKernel folder and search for "hideme" (the second one down)



You will see "//hideme(DriverObject)" Remove the // from hideme (aka uncomment)

This MAY cause the Blue Screen Of Death (bsod)...If it does, there is a fix where u dont have to uncomment hideme, but that is private.

1C)Find and open Sources and sources.ce in the DBKKernel Folder with notepad and replace the following:
"TARGETNAME=DBK32" to "TARGETNAME=Whatever" ("whatever" being a random string, but try to be consistent)

1D)

Using ASR, Path:(Main Source Folder)with the mask (memscan.c; DBKDrvr.c),
(Include Subfolders)
search and replace the following:



Code:
KeStackAttachProcess((PKPROCESS)selectedprocess,&a pc_state); ----> KeAttachProcess((PEPROCESS)selectedprocess);



Code:
KeUnstackDetachProcess(&apc_state); ----> KeDetachProcess();



1E)Fixing ioctl:

Using ASR, Path (Main Source Folder) with the mask (DBKDrvr.c; dbk32functions.pas),
search and replace the following:
(Include Subfolders)(untick the "Whole Word" function for this fix only!)

(you can replace the 7,8,9 with whatever number you want, but 789 works the best)

0x080 ----> 0x087
0x081 ----> 0x088
0x082 ----> 0x089

$080 ----> $087
$081 ----> $088
$082 ----> $089

If you already did the debug fixes, you can proceed to this step...

2) First, copy your dbkkernel path and place your main CE folder in the C:\ Drive, with the name "CE".

Then go to START --> All Programs --> Development kits --> WinDDK --> Build Environments --> WindowXP --> Window XP Free Build Environment
If you use Windows 2000 or another OS choose the appropriate one...

Next, type in cd "space" then right click and press paste...

If you did this right, C:\WinDDK\numbers, will change to C:\ce\dbkkernel

Next, type "ce" and you will start compiling whatever.sys...

[IMG]http://sppow93.***********.com/tut.syspic.jpg/tut.syspic-full.jpg[/IMG]

^^^^^^^^^It should look like that^^^^^^^^^^^^



3a ) Open "dbk32.dpr" in the dbk32 Directory with Delphi. Then we open the "Project Manager" under "VIEW" and expand "dbk32.dll" and double click on "DBK32functions" to open it.
Replace the following in DBK32functions.
CEDRIVER53 >>> Whatever1 (for 5.2 source search CEDRIVER51 instead of CEDRIVER53)
DBKProcList53 >>> Whatever2
DBKThreadList53 >>> Whatever3
Now save all and close all.
Next using ASR, Path (Main Source Folder) with the mask (*.*), search and replace the followings. (Include Subfolders)
dbk32.sys >>> Whatever.sys
dbk32.dll >>> Whatever.dll


Now we will replace all those mentioned strings to something else using ASR, Path (Main Source Folder) with the mask (dbk32.dpr; dbk32functions.pas) (Include Subfolders).
VQE ---> Whatever4
OP ---> Whatever5
OT ---> Whatever6
NOP ---> Whatever7
RPM ---> Whatever8
WPM ---> Whatever9
VAE ---> Whatever10

For a full lists of strings download this:
[Only registered and activated users can see links. ]

Once you have gone through the entire list of strings, change the mask to (newkernelhandler.pas). Instead of changing the strings normally like this:

VQE ---> Whatever4
OP ---> Whatever5
OT ---> Whatever6
NOP ---> Whatever7
RPM ---> Whatever8
WPM ---> Whatever9
VAE ---> Whatever10

Change the strings like this:

'VQE' ---> 'Whatever4'
'OP' ---> 'Whatever5'
'OT' ---> 'Whatever6'
'NOP' ---> 'Whatever7'
'RPM' ---> 'Whatever8'
'WPM' ---> 'Whatever9'
'VAE' ---> 'Whatever10'

Note that the quotes are VERY IMPORTANT, as with the mask as newkernelhandler.pas, and you are not using the quotes, you are going to get undeclared functions in the other files, giving a big hassle to change them all. It will still be undetected doing it using this method, so no need to worry whether or not it will be detected. If you are too lazy, you might get unpalatable results with the undetecting of the UCE. Ok, that is all I have to say. (i was too lazy to explain it...thanks to flawedmatrix)

3b)Save the DBK32functions.pas and DBK32.dpr in new names.

With DBK32functions.pas and DBK32.dpr opened in Delphi. Go "FILE> Save As".
(These are only my changes, you can change to other names)

DBK32.dpr >>> Whatever.dpr (according to my change list "Whatever.dll")(Save in dbk32 folder)
You will see that the "library DBK32;" has been changed to "library Whatever;"

DBK32functions.pas >>> Whateverfunctions.pas (Save in dbk32 folder)

After this you will see that Whatever.dpr's "uses" and Project Manager, DBK32functions.pas will be changed to whateverfunctions.pas.

Now save all and close all.

Now open Whatever.dpr in Delphi, you compile Whatever.dll. Go "Project> compile whatever" or Ctrl+F9.

Its ok to get "Hint" or "Warning", but if you get "Error" go recheck your steps again, coz you have made a mistake or forgot to change something somewhere.

If you do not get any Errors, your Whatever.dll will be at the main CE Source Directory.

3c) Next using ASR, Path (Main Source Folder) with the mask (*.*), search and replace "myhook". (Include Subfolders)

Rename the myhook in CEHook.dpr and hypermode.pas only to Whatever54.

Now open up CEHook.dpr in CEHook Directory with Delphi
(Note:For Borland users, you need to delete/comment out "system;" under "USES")

Then Compile CEHooK.dpr.

3d ) Next open up stealth.dpr in the stealth Directory with delphi and just compile it. Nothing to change.

3e) Now open up cheatengine.dpr in the main directory with Delphi.
(Note: Make sure the cheatengine.dpr you opened is from the main directory and not DEU, NLD or RUS directory!)

Go to the Project Manager and look for newkernelhandler.pas and

CeFuncProc.pas and open both up.
And save them as:

newkernelhandler.pas >>> Whateverhandler.pas

CeFuncProc .pas >>> Whatever55.pas

Save all and close all.
Next using ASR, Path (Main Source Folder) with the mask (*.*)(Do not include subfolders) and search for newkernelhandler and CeFuncProc, then change them to
newkernelhandler >>> Whateverhandler (EXCEPT for Newkernelhandler.pas)
CeFuncProc >>> Whatever55 (EXCEPT for CeFuncProc.pas)

3f )Next the value strings(hex)
* 00400000
* 7fffffff
* 80000000

Using ASR, Path (Main Source Folder) with the mask (*.*)(Include subfolders)

Search and replace the 3 values with the new value you calculated. (Note: ONLY change the values, leave the "$" alone)

Note: You must change it to a different value!

Eg:+2 from the value (Do not subtract, you may get some errors)

Use your windows calculator, select "View> Scientific>", select "HEX"

Enter the values. Then select "Dec". Then you + "any value".

Then you change it back to "Hex" and use this value for these changes.

So for Example using +2, you will get:

* 00400000 ---> 00400002
* 7fffffff ---> 80000001
* 80000000 ---> 80000002

3g) Now using ASR, Path (Main Source Folder) with the mask (*.*)(Do not include subfolders), Search and replace the followings.

nextscanbutton >>> Whatever56
scanvalue >>> Whatever57
scanvalue2 >>> Whatever58
ScanType >>> Whatever59
VarType >>> Whatever60
newscan >>> Whatever61
ScanText >>> Whatever62
syndiv.com/ce >>> Google.com(Anything (like your UCE homepage if its public) )
CheatEngine >>> WhateverEngine (EXCEPT for cheatengine.bpg)
cheat engine >>> Whatever Engine

Next open up MainUnit.pas with Delphi and locate the following:

Code:
if messagedlg('Do you want to try out the tutorial?',mtconfirmation,[mbyes,mbno],0)=mryes then
shellexecute(0,'open','Tutorial.exe','','',sw_show );


Replace the "Tutorial" with "Project1" like this:

Code:
if messagedlg('Do you want to try out the tutorial?',mtconfirmation,[mbyes,mbno],0)=mryes then
shellexecute(0,'open','Project1.exe','','',sw_show );



Now save and close it

Now open up OpenSave.pas with Delphi and locate the following:


Code:
7 "Tutorial.exe":Application processname
Replace "Tutorial" with "Project1" like so:



Code:
7 "Project1.exe":Application processname (This is not detected, but change it so it will open up Project1 when prompted)


Then in openSave.pas with Delphi and locate the following: (this is only for CE 5.3)


Code:
if x<>'WhateverEngine' then
raise exception.Create('This is not a valid Whatever Engine table');



Now comment it out like so:

Code:
//if x<>'WhateverEngine' then
//raise exception.Create('This is not a valid Whatever Engine table');



Doing this will allow you to open other Cheat Tables(.CT), which are not saved by your engine.

Now save and close it .


Optional
For Versions Options, go to the project manager and rigth click whateverengine.exe. then click options...Go to version info... for customizable features. Untick "include version info in project" If you do not want it .


Optional
As for the Settings and About section, in the Project Manager open up "formsettingsunit" and "aboutunit". (Edit about unit to make it undetected)(mainly the Donate button and the Website Button)

Click on the sections you want to change and change the captions only.
(Give some credit to Dark Byte for his Source code)
3i ) Changing project group and cheatengine.exe into Whateverengine. (Note: Make a copy of your edited source before you proceed)

- Changing project group name.

Open cheatengine.bpg from the main directory, then "save as" Whateverengine.bpg in the main directory. Close and open whateverengine.bpg to test it.

- Changing the cheatengine.exe name.

Open Whateverengine.bpg from the main directory and in the project manager, "Right click" on cheatengine.exe and select "View Source".



Then you save Cheatengine.dpr as Whateverengine.dpr in the main ce source folder.

Now repeat this for the followings:
Cheatengine.DEU (Save as Whateverengine.dpr and save it in the DEU Folder)
Cheatengine.NLD (Save as Whateverengine.dpr and save it in the NLD Folder)
Cheatengine.RUS (Save as Whateverengine.dpr and save it in the RUS Folder)

3j)Compiling "whateverengine.exe" (cheatengine.exe).

First, download
[Only registered and activated users can see links. ]

Now open up whateverengine.dpr in the main CE source folder with delphi and
You go "Project> compile whateverengine" or Ctrl+F9.

4. Finishing
4a) Compile all of these using Delphi:

- Pscan.dll (Pscan.dpr in injectedpointerscan folder)

- emptydll.dll (emptydll.dpr in SystemcallRetriever folder)

- emptyprocess.exe (emptyprocess.dpr in SystemcallRetriever folder)

- systemcallsignal.exe (systemcallsignal.dpr in SystemcallRetriever folder)

- Systemcallretriever.exe(change anything if needed) (Systemcallretriever.dpr in SystemcallRetriever folder)

- Kernelmoduleunloader.exe (Kernelmoduleunloader.dpr in "dbk32\Kernelmodule unloader" folder)

- Project1.exe (Project1.dpr in Tutorial folder)

4b)copy all of these files to a folder

WhateverEngine.exe (Cheatengine.exe)
Whatever.sys (dbk32.sys)
Whatever.dll (dbk32.dll)
driver.dat
Cehook.dll
stealth.dll ( Rolling Dice suggests you that you don't need to use Stealth.dll - it may cause lagging ) ( it's your opinion to put it in or not )
PScan.dll
emptydll.dll
emptyprocess.exe
systemcallsignal.exe
Systemcallretriever.exe
Kernelmoduleunloader.exe
Project1.exe
(Missing files will cause errors when you execute.)



FIND SETTINGS YOURSELF(THANK YOU THINSO FOR SOME OF THIS TUT He made some of it)

Don't worry about errors. Just start over. Mistakes=Learning! [IMG]http://forum.****************/images/smiles/icon_biggrin.gif[/IMG]

And you're done!


gn11317688 added 10 Minutes and 34 Seconds later...< --- Please use the edit button in the future--- >

quoted from other forum

hi i found something undetectable but i dont know if where is the
4 byte
2 byte
float
text
and the others but i know this can bypass game guard rev 1278
and i tried this in war rock with Game Guard rev 1278 without MS-DOS it get detected but with MS-DOS its undetected

first open MHS.exe modify and change the following


MHS.exe ---->whatever.exe
%s Memory Hacking Software ----> %s whatever
%s Opened by %s ---->%s whatever %s
Waiting on %s ----->whatever %s
then check all misc

when done click apply and close may take a few seconds and a lagg
then something will po up dont know what it is but i think it is m dos close it and in you mhs folder 3 files will be added
when you want to use with no detection 1st open
MS-DOS file then open MHS.exe




you can download it here download the latest version

h t t p : / / m e m o r y h a c k i n g . c o m / d o w n l o a d . p h p
erase space cause always cant use url



sorry for my bad english cause im not that good enough

_________________

Hi im almar from philippines and i'm using cheatengine in all of my games i've played
i join now here because i wanted to learn and
share if how to make the UCE [undetectable cheat engine]

Last edited by gn11317688; 02-26-2009 at 10:04 PM. Reason: Automerged Doublepost
gn11317688 is offline   Reply With Quote
Sponsored Links
Old 02-26-2009, 11:06 PM   #2
nr85
Registered User
 
Last Online: 07-03-2009 06:36 AM
Join Date: Feb 2009
Posts: 27
Rep Power: 0
Rep Points: 10
nr85 is on a distinguished road
Feedback: (0)
Points: 2,072.58
Bank: 0.00
Total Points: 2,072.58
Re: bypass tutorial

i totally got no idea with it...
wats this all about???
im blur man @@
plz teach me the easiest way...
any1 can help??
nr85 is offline   Reply With Quote
Old 02-27-2009, 12:58 AM   #3
chongkeong
Lurker
 
Last Online: 08-17-2009 11:57 PM
Join Date: Jan 2009
Posts: 1
Rep Power: 0
Rep Points: 10
chongkeong is on a distinguished road
Feedback: (0)
Points: 3,616.28
Bank: 0.00
Total Points: 3,616.28
Re: bypass tutorial

?? what is this page about???

To the author of this topic.. did u accidentally posted a "wrong" thing on a "wrong" forum??? What bypass is this??? You're just shooting and shooting your "whatever" and not really saying anything at all.... bypass what??? **NOTE: this is LUNA ONLINE subpage. You might be in the wrong page...
chongkeong is offline   Reply With Quote
Old 02-27-2009, 02:54 AM   #4
ts196644
Registered User
 
Last Online: Today 03:52 AM
Join Date: Feb 2009
Posts: 134
Rep Power: 0
Rep Points: 6
ts196644 is an unknown quantity at this point
Feedback: (0)
Points: 5,551.18
Bank: 0.00
Total Points: 5,551.18
Re: bypass tutorial

@@" soo long.. wan read siao liao
ts196644 is offline   Reply With Quote
Old 02-27-2009, 03:44 AM   #5
sweetmiki
Registered User
 
Last Online: 03-28-2009 09:44 PM
Join Date: Feb 2009
Posts: 54
Rep Power: 1
Rep Points: 10
sweetmiki is on a distinguished road
Feedback: (0)
Points: 3,552.89
Bank: 0.00
Total Points: 3,552.89
Re: bypass tutorial

@.@ oly programmer wil understand kua
hope its ueful 4 alan n kahfei n d rest who work on cracking bypass..

Last edited by sweetmiki; 02-27-2009 at 03:46 AM.
sweetmiki is offline   Reply With Quote
Old 02-27-2009, 04:35 AM   #6
kahfei86
Registered User
 
Last Online: 04-07-2009 06:02 AM
Join Date: Feb 2009
Posts: 92
Rep Power: 1
Rep Points: 10
kahfei86 is on a distinguished road
Feedback: (0)
Points: 4,167.78
Bank: 0.00
Total Points: 4,167.78
Re: bypass tutorial

to gn11317688,
1) I'm understand u are teaching us to change the variable via C++, but do u mix other programming Language at the same time? please stat is u r.
2) Can u help to put some Color that which of the statement is related? seem u already waste much of time to paste and edit ur coding here. appreciated if u will
3) Can u clearly to define wat we basically wan to edit? appreciated if u will

kahfei86 added 15 Minutes and 7 Seconds later...< --- Please use the edit button in the future--- >

Some of the question here i wish to ask u too, if u dun mind.

1) why u wan to help us (by teaching us edit program) but not with just send the Client to us? Or u purposely just wan to show u r a PRO programmer? (Assume as 1st condition)

2) if the 1st condition is False, then why u dun state clearly the WHATEVER which related with which? Or u purposely dun wan us to get success how can break the bypass? (Assume as 2nd condition)

3) if the 2nd condition is False, then why for u come in this forum and post the TUTORIAL here? Or u wan us to learn coding?(Assume as 3rd condition)

4) if the 3rd condition is True, suggest u to create ur own FORUM and teach there. and remember to post all the program needed for those who really wan study.

That is only my opinion and suggestion. Thanks.

Last edited by kahfei86; 02-27-2009 at 04:50 AM. Reason: Automerged Doublepost
kahfei86 is offline   Reply With Quote
Old 02-27-2009, 04:59 AM   #7
sweetmiki
Registered User
 
Last Online: 03-28-2009 09:44 PM
Join Date: Feb 2009
Posts: 54
Rep Power: 1
Rep Points: 10
sweetmiki is on a distinguished road
Feedback: (0)
Points: 3,552.89
Bank: 0.00
Total Points: 3,552.89
Re: bypass tutorial

Quote:
Originally Posted by kahfei86 View Post
to gn11317688,
1) I'm understand u are teaching us to change the variable via C++, but do u mix other programming Language at the same time? please stat is u r.
2) Can u help to put some Color that which of the statement is related? seem u already waste much of time to paste and edit ur coding here. appreciated if u will
3) Can u clearly to define wat we basically wan to edit? appreciated if u will

kahfei86 added 15 Minutes and 7 Seconds later...< --- Please use the edit button in the future--- >

Some of the question here i wish to ask u too, if u dun mind.

1) why u wan to help us (by teaching us edit program) but not with just send the Client to us? Or u purposely just wan to show u r a PRO programmer? (Assume as 1st condition)

2) if the 1st condition is False, then why u dun state clearly the WHATEVER which related with which? Or u purposely dun wan us to get success how can break the bypass? (Assume as 2nd condition)

3) if the 2nd condition is False, then why for u come in this forum and post the TUTORIAL here? Or u wan us to learn coding?(Assume as 3rd condition)

4) if the 3rd condition is True, suggest u to create ur own FORUM and teach there. and remember to post all the program needed for those who really wan study.

That is only my opinion and suggestion. Thanks.
wah kahfei geng
sweetmiki is offline   Reply With Quote
Old 02-27-2009, 05:17 AM   #8
botepidemic
Registered User
 
Last Online: 08-06-2009 11:43 AM
Join Date: Feb 2009
Posts: 56
Rep Power: 1
Rep Points: 10
botepidemic is on a distinguished road
Feedback: (0)
Points: 6,250.62
Bank: 0.00
Total Points: 6,250.62
Re: bypass tutorial

i dont think im gonna understand this rite now.. but i believe it is a very value to kept it for the future..
botepidemic is offline   Reply With Quote
Old 02-27-2009, 06:40 AM   #9
gn11317688
Registered User
 
Last Online: 03-31-2009 06:26 AM
Join Date: Feb 2009
Posts: 14
Rep Power: 0
Rep Points: 10
gn11317688 is on a distinguished road
Feedback: (0)
Points: 3,176.12
Bank: 0.00
Total Points: 3,176.12
Re: bypass tutorial

hi guys i just back from work
the purpose i post this turtoiral coz i try to help out since most ppl only ask for new client & bypass but less ppl putting their effort to help.

i just try helping out. i not a programmer if i got the client i send here directly no need waste time.

those program u need is listed with link already cant u c? actually u all can get more info related to hacking just that got time to study it or not. Or u only sit there wait for hack?
gn11317688 is offline   Reply With Quote
Old 02-27-2009, 07:37 AM   #10
Celesty Edna
Lurker
 
Last Online: 04-08-2009 10:43 AM
Join Date: Feb 2009
Posts: 3
Rep Power: 0
Rep Points: 10
Celesty Edna is on a distinguished road
Feedback: (0)
Points: 1,027.73
Bank: 0.00
Total Points: 1,027.73
Re: bypass tutorial

I gotta agree with the TS. Well, some people are blind, when someone try to help them, they condemn others effort. All waiting to be spoon feed (yeah, kids, pathetic kind of kids). Instead of learning the process of bypassing the client, they keep moaning and posting their email as if others want to give them directly (again, spoon feed).

You want to hack the game, please learn or understand the basic of it. And if you think you cant understand a thing, shut your mouth and wait for the hack to come for you. Dont condemn others effort. TS is just trying to help people like you. To make you realize there's no free things in this world (Im not saying one should sell the hack either, that's just plain wrong). But for one to moan and begging like begger is not a pretty sight too. Just my 10 cent because im tired watching this 86 guy keep condemning others favor for the community. ;)
Celesty Edna is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off

Forum Jump

All times are GMT -7. The time now is 12:36 PM.

 

Copyright ©2009, GamerzPlanet.Net
Visits: