The scripts are old (version
4.9.6) but you can update them by reading this post closely
NOTE TO NEW HACKERS: you must look around the forum for the current way of bypassing 2Moons' anti-hacking security
NOTE TO EVERYONE: The reason why this forum became boring to me is that people waste a lot of time doing nothing... the people that are interested in hacking just re-post stuff that is all over the place. Here is a tip (go into the game and start searching for everything, Character coords, monster coords, clothing values, animation indexes, shop prices, monstr action indexes...the list goes on)
===TOOLS===
[Only registered and activated users can see links. Click Here To Register...]Cheat Engine: A tool that can be used for memory editing and for searching values during the game runtime.
[Only registered and activated users can see links. Click Here To Register...]OpenOffice Calc: A tool used for editing the 2Moons data ".csv" files. (the free equivalent of Excel)
[Only registered and activated users can see links. Click Here To Register...]OllyDBG v110: Allows you to edit dekaron's memory permanently. (To be used with unpacked_dekaron)
[Only registered and activated users can see links. Click Here To Register...]: This has some information that is essential for Wall Hacking with CheatEngine
[Only registered and activated users can see links. Click Here To Register...]: Used for unpacking 2Moons' data files (pack.d00, pack.d01...ect)
[Only registered and activated users can see links. Click Here To Register...]: Used for bypassing 2Moons' detection of changes made to the data files by Excel
[Only registered and activated users can see links. Click Here To Register...]: Completely disables xigncode, allowing you to use cheat engine or other such tools
[Only registered and activated users can see links. Click Here To Register...]: Bypasses Xigncode's protection
[Only registered and activated users can see links. Click Here To Register...]: A tool used for disabling anything GG does
[Only registered and activated users can see links. Click Here To Register...]: For use with ollydgb to read/edit/save process memory
[Only registered and activated users can see links. Click Here To Register...]: A tool used for packet sniffing, for those who want to get into packet editing. (Outdated)
[Only registered and activated users can see links. Click Here To Register...]: A pixel based bot created by kabflash which includes autoskill, looting, potting, and custom script capabilities
[Only registered and activated users can see links. Click Here To Register...]: A tool that can be used to train while you are not playing
[Only registered and activated users can see links. Click Here To Register...]: A tool that can send clicks to 2Moons (you can write your own bot scripts)
[Only registered and activated users can see links. Click Here To Register...]ACTool: Can be used to write simple bot scripts (for example give it a Mousepos and then tell it to Leftclick)
[Only registered and activated users can see links. Click Here To Register...]: A tool that can click at the coordinates you tell it to
===OTHER===
Instructions for unpacking dekaron.exe: (for versions 4.6.33 and under
[Only registered and activated users can see links. Click Here To Register...]
Instructions for unpacking dekaron.exe: (for version 4.7.4)(made for Global but I think it also works for 2Moons)
[Only registered and activated users can see links. Click Here To Register...]
Basic hacking assembly guide: (for those of you who like to understand why you do what you do)
[Only registered and activated users can see links. Click Here To Register...]
Lenas Reversing for Newbies: (AMAZING video tutorials on Olly and ASM)
[Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...] (Tuts4You has a downloading limit so download the first 20 tuts above)
===CheatEngine Hacks===
Instructions for attaching CheatEngine to 2Moons:
1. On the
CheatEngine main window Click on the
[Only registered and activated users can see links. Click Here To Register...] button and the
Process List window will open
2. On the
Process List window, scroll down and, usualy close to the bottom, you will find
dekaron.exe, so double click it.
Give thanks to Drako (me)
Instructions for adding scripts into CheatEngine:
NOTE: you must have CheatEngine attached to 2Moons before starting
1. On the
CheatEngine main window Click on the
[Only registered and activated users can see links. Click Here To Register...] button to see the
Memory Viewer window.
2. On the
Memory Viewer window go to
Tools/Auto Assemble or
(Ctrl+A) to open the
Auto assemble window.
3. Copy the script you are going to use and paste it on the
Auto assemble window.
4. On the
Auto assemble window go to
File/Assign to current cheat table.
5. Close the
Auto assemble window and the
Memory Viewer window.
6. (Un-needed) On the
CheatEngine main window double click on
Auto assemble cheat to rename your script.
7. To enable your script, click on the check box to the left of your script, where it said
Auto assemble cheat.
Give thanks to Drako (me)
Instructions for changing the values being used by a script:
1. Enable the script you want to use (We will use Speed Hack as the example)
2. On
Cheat Engine click on
[Only registered and activated users can see links. Click Here To Register...]
3. You will get a window asking for the
Address,
Description, and
Type of the address you want to add.
4. So then fill in the window as follows
[Only registered and activated users can see links. Click Here To Register...]
5. After clicking
OK, a new address will be added to your cheat table and it will already have a value.
6. So change this value to what you like... 2.5,20,400,34 or anything you can think of.
Why Does this work:
In
CheatEngine's
Auto assemble scripts you have probably seen this, "
registersymbol(Something
)".
What this does is make
CheatEngine recognize this "Something" as an address like...004599BD (which is the vac address).
So you can... add that "Something" to your cheat table, use it in scripts, and even search it in the memory view by typing "Something" in the address search (Ctrl+G).
Notice how in the speed script it says "
registersymbol(SpeedValue)"
Give thanks to Drako (me)
Instructions for saving and loading Cheat Tables:
After you have added all the scripts you want to your cheat table, now you can save the whole thing in a file.
1. At the top left of the
CheatEngine main window click on the
[Only registered and activated users can see links. Click Here To Register...] button to open the
Save As window.
2. Navigate through your computer's files and folders then when you find a good place, save your CheatTable.
3. The next time you open
2Moons and
CheatEngine, you can click on the
[Only registered and activated users can see links. Click Here To Register...] to open the
Open window.
4. Navigate through your computer's files and folders to find your saved Cheat Table and double click it.
Give thanks to Drako (me)
Instructions for updating addresses: (NOTE: Everyone must do this for any script to work)
NOTE: We will use Speed Hack as an example
1. Fist add the
Speed Hack script to your Cheat Table
2. Right click the
Speed Hack script and choose
Change script to open the
Auto assemble window
3. On the
Auto assemble window scroll down until you see...
"
007BFFAA: //D9 40 08 5F 5E C3 8B 0D"
The
007BFFAA part is the
Speed Hack address
The
D9 40 08 5F 5E C3 8B 0D part is the ArrayOfBytes of the address.
3. Copy the ArrayOfBytes and move the
Auto assemble window to the side.
4. On the search section of the
CheatEngine main window change the "
Vale type" to
Array of Bytes.
5. Paste the ArrayOfBytes you copied on the white box next to "
Hex" and click the
[Only registered and activated users can see links. Click Here To Register...] button
To the left, you will see (ideally) one result.
The numbers and letters under the
Address column is your new address for the
Speed Hack script.
6. Bring back the
Auto assemble window and replace the
007BFFAA with the new address you found.
7. Click
OK to save the changes to the
Speed Hack script.
NOTE: On step 5, if you didn't get only one result then you are going to have to try every result one by one until you find the correct one. However if you get either 0 results or too many results then ask for help.
Give thanks to Drako (me)
Here are more specific Instructions if you couldn't understand my steps
[Only registered and activated users can see links. Click Here To Register...]
[VacPart1]MonsterProperties: Sets the monster's sight ranges, stand delays, # of following monsters...ect
Code:
[ENABLE]
alloc(MonsterProperties,2048)
label(ReturnMonsterProperties)
label(PropertyBace)
registersymbol(PropertyBace)
0045C2AE: //8B 80 98 00 00 00 89 81 9C 00
jmp MonsterProperties
nop
ReturnMonsterProperties:
MonsterProperties:
push eax
mov eax,[eax+00000098] //Original Code
mov [ecx+0000009C],eax //Original Code
pop eax
mov [PropertyBace],ecx
//mov [ecx+00],00000000 //DwInfoIndex
mov [ecx+04],0000004B //DwExploreRange
mov [ecx+08],0000004B //DwSight
mov [ecx+0C],0000004B //DwPersuitRange
//mov [ecx+10],00000000 //DwAvoidRange
mov [ecx+14],00000000 //DwExploreStandDelay
//mov [ecx+18],00000000 //DwExploreMoveDelay
//mov [ecx+1C],00000000 //DwStandDelay
mov [ecx+20],000001F4 //DwMoveDelay
//mov [ecx+24],00000000 //DwFollowMyMasterRange
//mov [ecx+28],00000000 //DwStopMasterNear
//mov [ecx+2C],00000000 //DwWarpMyMasterRange
//mov [ecx+30],00000000 //DwCallTeamPossibelHP
//mov [ecx+34],00000000 //DwCallTeamCount
//mov [ecx+38],00000000 //DwBlockNFirstAttack
//mov [ecx+3C],00000000 //dwCallTeamCell
mov [ecx+40],000000FA //dwFollowTarget
mov [ecx+44],00000000 //dwSpecialAttackStartHP
mov [ecx+48],00000000 //dwSpecialMeleeAttackRate
mov [ecx+4C],00000000 //dwSpecialRangeAttackRate
mov [ecx+50],00000000 //DwPowerAttacjStartHP
mov [ecx+54],00000000 //dwPowerMeleeAttackProbable
mov [ecx+58],00000000 //dwPowerRangeAttackProbable
//mov [ecx+5C],00000000 //DwUnderAttackAggro
mov [ecx+60],00000000 //DwMeleeAttackRangeInAggro
mov [ecx+64],00000000 //DwRangeAttackRangeInAggro
mov [ecx+68],000003E8 //DwSightInAggro
//mov [ecx+6C],00000000 //DwDefeatAggro
//mov [ecx+70],00000000 //DwBlockedAggro
//mov [ecx+74],00000000 //DwSlideAggro
//mov [ecx+78],00000000 //DwHealAggro
//mov [ecx+7C],00000000 //DwMasterUnderAttackAggro
//mov [ecx+80],00000000 //DwMasterDefeatAggro
//mov [ecx+84],00000000 //DwMasterBlockingAggro
//mov [ecx+88],00000000 //DwMasterSlideAggro
//mov [ecx+8C],00000000 //DwCOmplusionUnderAttackAggro
mov [ecx+90],00000063 //dwMaxSummonsMonsterCount
mov [ecx+94],00000000 //dwReSummonsMonsterTick
mov [ecx+98],00000000 //dwMaxSummonsMonsterRange
mov [ecx+9C],00000000 //dwSummonsStartPcCount
//mov [eax+A0],00000000 //PatternType
mov eax,[ecx+0000009C] //Original Code
jmp ReturnMonsterProperties
PropertyBace:
db 00 00 00 00
[DISABLE]
dealloc(MonsterProperties)
unregistersymbol(PropertyBace)
0045C2AE:
mov eax,[eax+00000098]
[VacPart2]MonsterRange: Sets the Monster's attack ranges to 0 (So monsters wont attack you)
Code:
[ENABLE]
alloc(MonsterRange,1024)
label(ReturnMonsterRange)
0053D155: //89 54 24 48 8B 01 FF 50 0C 8B
jmp MonsterRange
nop
ReturnMonsterRange:
MonsterRange:
mov [esp+48],edx
mov [esp+30],00000000
mov [esp+4c],00000000
//mov [esi+00000240],0000000 //other attack range to 0
//mov [esi+0000023c],0000000 //other attack range to 0
//mov [esi+00000238],0000000 //other attack range to 0
mov eax,[ecx]
jmp ReturnMonsterRange
[DISABLE]
dealloc(MonsterRange)
0053D155:
mov [esp+48],edx
mov eax,[ecx]
[VacPart3]MonsterAggro: Sets the Monster's aggro value (It will run towards you as soon as it sees you)
Code:
[ENABLE]
alloc(MonsterAggro,4)
registersymbol(MonsterAggro)
0053D16A: //0F B7 86 54 01 00 00 8B 0D
mov eax,[MonsterAggro]
nop
nop
MonsterAggro:
db 03 00 00 00
[DISABLE]
unregistersymbol(MonsterAggro)
0053D16A:
movzx eax,word ptr [esi+00000154]
[VacAllTogether]: This is just a script with all 3 of the Vac Parts together (nothing special)
Code:
[ENABLE]
alloc(MonsterProperties,2048)
label(ReturnMonsterProperties)
label(MonsterRange)
label(ReturnMonsterRange)
label(MonsterAggro)
label(PropertyBace)
registersymbol(MonsterAggro)
registersymbol(PropertyBace)
0045C2AE: //8B 80 98 00 00 00 89 81 9C 00
jmp MonsterProperties
nop
ReturnMonsterProperties:
0053D155: //89 54 24 48 8B 01 FF 50 0C 8B
jmp MonsterRange
nop
ReturnMonsterRange:
0053D16A: //0F B7 86 54 01 00 00 8B 0D
mov eax,[MonsterAggro]
nop
nop
MonsterProperties:
push eax
mov eax,[eax+00000098] //Original Code
mov [ecx+0000009C],eax //Original Code
pop eax
mov [PropertyBace],ecx
//mov [ecx+00],00000000 //DwInfoIndex
mov [ecx+04],0000004B //DwExploreRange
mov [ecx+08],0000004B //DwSight
mov [ecx+0C],0000004B //DwPersuitRange
//mov [ecx+10],00000000 //DwAvoidRange
mov [ecx+14],00000000 //DwExploreStandDelay
//mov [ecx+18],00000000 //DwExploreMoveDelay
//mov [ecx+1C],00000000 //DwStandDelay
mov [ecx+20],000001F4 //DwMoveDelay
//mov [ecx+24],00000000 //DwFollowMyMasterRange
//mov [ecx+28],00000000 //DwStopMasterNear
//mov [ecx+2C],00000000 //DwWarpMyMasterRange
//mov [ecx+30],00000000 //DwCallTeamPossibelHP
//mov [ecx+34],00000000 //DwCallTeamCount
//mov [ecx+38],00000000 //DwBlockNFirstAttack
//mov [ecx+3C],00000000 //dwCallTeamCell
mov [ecx+40],000000FA //dwFollowTarget
mov [ecx+44],00000000 //dwSpecialAttackStartHP
mov [ecx+48],00000000 //dwSpecialMeleeAttackRate
mov [ecx+4C],00000000 //dwSpecialRangeAttackRate
mov [ecx+50],00000000 //DwPowerAttacjStartHP
mov [ecx+54],00000000 //dwPowerMeleeAttackProbable
mov [ecx+58],00000000 //dwPowerRangeAttackProbable
//mov [ecx+5C],00000000 //DwUnderAttackAggro
mov [ecx+60],00000000 //DwMeleeAttackRangeInAggro
mov [ecx+64],00000000 //DwRangeAttackRangeInAggro
mov [ecx+68],000003E8 //DwSightInAggro
//mov [ecx+6C],00000000 //DwDefeatAggro
//mov [ecx+70],00000000 //DwBlockedAggro
//mov [ecx+74],00000000 //DwSlideAggro
//mov [ecx+78],00000000 //DwHealAggro
//mov [ecx+7C],00000000 //DwMasterUnderAttackAggro
//mov [ecx+80],00000000 //DwMasterDefeatAggro
//mov [ecx+84],00000000 //DwMasterBlockingAggro
//mov [ecx+88],00000000 //DwMasterSlideAggro
//mov [ecx+8C],00000000 //DwCOmplusionUnderAttackAggro
mov [ecx+90],00000063 //dwMaxSummonsMonsterCount
mov [ecx+94],00000000 //dwReSummonsMonsterTick
mov [ecx+98],00000000 //dwMaxSummonsMonsterRange
mov [ecx+9C],00000000 //dwSummonsStartPcCount
//mov [eax+A0],00000000 //PatternType
mov eax,[ecx+0000009C] //Original Code
jmp ReturnMonsterProperties
MonsterRange:
mov [esp+48],edx
mov [esp+30],00000000
mov [esp+4c],00000000
//mov [esi+00000240],0000000 //other attack range to 0
//mov [esi+0000023c],0000000 //other attack range to 0
//mov [esi+00000238],0000000 //other attack range to 0
mov eax,[ecx]
jmp ReturnMonsterRange
MonsterAggro:
db 03 00 00 00
PropertyBace:
db 00 00 00 00
[DISABLE]
dealloc(MonsterProperties)
unregistersymbol(MonsterAggro)
unregistersymbol(PropertyBace)
0045C2AE:
mov eax,[eax+00000098]
0053D155:
mov [esp+48],edx
mov eax,[ecx]
0053D16A:
movzx eax,word ptr [esi+00000154]
God Mode: Makes the monsters feel so bad about themselves that it makes them not even attempt to attack you
Code:
[ENABLE]
00459257:
je 004592D9
[DISABLE]
00459257:
je 00459267
Give thanks to Drako (me)
Mob Speed: This script allows you to change all the Mob's walking as well as running speeds.
Notes on Mob Speed:
There have been many questions on changing the initial speed of the mob speed hack.
These notes are to guide you though this enlightenment.
If you have read and understood the "Instructions for changing the values being used by a script" above, this might be easier for you.
so....
Point 1. The normal speed of mobs without hacking ranges from 3 to 5, while your own speed is 2.6 (without skills).
Point 2. You will need to find the line in the mob speed script that says "db 00 00 20 41"
Point 3. Now you need to learn the hex equivalent of the speed values.
here I provide the values you should be using:
00 00 00 00 = 0
00 00 80 3F = 1
00 00 00 40 = 2
00 00 40 40 = 3
00 00 80 40 = 4
00 00 A0 40 = 5
00 00 C0 40 = 6
00 00 E0 40 = 7
00 00 00 41 = 8
00 00 10 41 = 9
00 00 20 41 = 10
00 00 30 41 = 11
00 00 40 41 = 12
00 00 50 41 = 13
00 00 60 41 = 14 //any faster than this, and the mobs might start getting lost
Point 4. Remember the line in point2? it said "db 00 00 20 41". So guess the initial speed that the Mob Speed script and the Player Speed Script sets.
(I'm not gonna tell you cuz I want to to figure it out)
Point 5. Now that you are ready to change speeds you should know some ideal values, I worked it out myself and figured out that if your mob speed is 2x your own speed, the monsters wont get lost behind you. This means that, for example setting your own speed to 10 and the mob speed to 20 would be reasonable
HOWEVER remember that setting the mob speed too high is not recommended (you can try if you want to know what I mean "00 00 A0 41 = 20")
so knowing that, it would be a good idea to set the mob speed to 14 and your own speed to 7 OR the mob speed to 10 and your own speed to 5.
I prefer setting my speed to 10 and the mobs to 14. Then I simply stop when the mobs get too far behind me.
Making The Change: so just take your newly learn values and replace the old ones in the script with these new ones.
Now every time you enable the two scripts the new values will be set and ready
Code:
[ENABLE]
alloc(DrakoMobSpeed,64)
label(MobIsWalking)
label(ReturnMobSpeed)
label(MobRunSpeed)
label(MobWalkSpeed)
registersymbol(MobRunSpeed)
registersymbol(MobWalkSpeed)
0053E190: //80 7C 24 04 00 74 06 D9 40 70
jmp DrakoMobSpeed
ReturnMobSpeed:
DrakoMobSpeed:
cmp byte ptr [esp+04],00
je MobIsWalking
fld dword ptr [MobRunSpeed]
ret 0004
MobIsWalking:
fld dword ptr [MobWalkSpeed]
ret 0004
MobRunSpeed:
db 00 00 20 41
MobWalkSpeed:
db 00 00 40 40
[DISABLE]
dealloc(DrakoMobSpeed)
unregistersymbol(MobRunSpeed)
unregistersymbol(MobWalkSpeed)
0053E190:
cmp byte ptr [esp+04],00
Give thanks to Drako (me)
WallHack: This hack allows you to walk through walls,hills,water...ect
Code:
[ENABLE]
alloc(Wall,64)
label(ReturnWall)
00765A03: //8D BC 24 88 00 00 00
jmp Wall
nop
nop
ReturnWall:
Wall:
lea edi,ss:[esp+00000088]
cmp [eax+00000402],5f626577
je ReturnWall
mov [eax+00000402],5f626577
mov [eax+00000406],67616d69
mov [eax+0000040a],616d2e65
mov [eax+0000040e],00000063
jmp ReturnWall
[DISABLE]
dealloc(Wall)
00765A03:
lea edi,ss:[esp+00000088]
Give
[Only registered and activated users can see links. Click Here To Register...] to bottomy
Zoom Hack: As the name suggests, this allows you to zoom as far as you like (untill you can't see yourself)
Code:
[ENABLE]
alloc(DrakoZoom,512)
label(ReturnZoom)
label(ZoomMax)
registersymbol(ZoomMax)
005D2356: //D9 47 04 D9 44 24 28 83 C4 08
jmp DrakoZoom
nop
nop
ReturnZoom:
DrakoZoom:
push eax
mov eax,[ZoomMax]
mov [edi+04],eax
fld dword ptr [edi+04]
fld dword ptr [esp+28]
pop eax
jmp ReturnZoom
ZoomMax:
db 00 00 8C 42
[DISABLE]
dealloc(DrakoZoom)
unregistersymbol(ZoomMax)
005D2356:
fld dword ptr [edi+04]
fld dword ptr [esp+28]
Give thanks to Drako (me)
FarEye: Removes the limit to the view distance when using zoom hack
Code:
[ENABLE]
alloc(DrakoClipDistance,64)
label(ReturnClip)
label(ClipDistance)
registersymbol(ClipDistance)
005D3955: //8B 48 08 8B 50 04 51 8B 4C 24
jmp DrakoClipDistance
nop
ReturnClip:
DrakoClipDistance:
mov ecx,[ClipDistance]
mov [eax+08],ecx
mov edx,[eax+04]
jmp ReturnClip
ClipDistance:
db 00 00 48 43
[DISABLE]
dealloc(DrakoClipDistance,64)
unregistersymbol(ClipDistance)
005D3955:
mov ecx,[eax+08]
mov edx,[eax+04]
Give thanks to Drako (me)
Speed Hack: This script allows you to set your own character speed
Code:
[ENABLE]
aobscan(addrSpeed,D9 40 08 5F 5E C3 8B 0D)
aobscan(SpeedBypass,89 4E 0C 8B 50 08)
alloc(DrakoSpeed,16)
label(ReturnSpeed)
label(SpeedValue)
registersymbol(SpeedValue)
addrSpeed: //D9 40 08 5F 5E C3 8B 0D
jmp DrakoSpeed
ReturnSpeed:
SpeedBypass:
db 90 90 90
mov edx,[eax+08]
db 90 90 90
DrakoSpeed:
fld dword ptr [SpeedValue]
pop edi
pop esi
jmp ReturnSpeed
SpeedValue:
db 00 00 20 41
[DISABLE]
aobscan(addrSpeed,E9 * * * * C3 8B 0D)
aobscan(SpeedBypass,90 90 90 8B 50 08)
dealloc(DrakoSpeed)
unregistersymbol(SpeedValue)
addrSpeed:
fld dword ptr [eax+08]
pop edi
pop esi
SpeedBypass:
mov [esi+0c],ecx
mov edx,[eax+08]
mov [esi+10],edx
Give thanks to Drako (me)
Store Hack: Allows you to open a store in any map (used for extra storage)
Code:
[ENABLE]
007D7250: //8A 41 08 C3 CC CC CC CC CC CC CC CC CC CC CC CC 8B 0D
mov al,01
ret //by Drako
[DISABLE]
007D7250:
mov al,[ecx+08]
Give thanks to Drako (me)
Auto Pots: This script sets it so the game thinks that ALL your pots are auto pots
Code:
[ENABLE]
alloc(newmem,1024)
label(returnhere)
label(originalcode)
label(exit)
label(check_mana)
label(finished_check)
0052D09F: //83 78 08 13 0F 84
jmp newmem
nop
nop
nop
nop
nop
returnhere:
newmem:
originalcode:
cmp dword ptr [eax+08],01 // checking for HP pot?
jne check_mana
mov dword ptr[eax+08],11 // change to auto pot
mov dword ptr[eax+10],11
check_mana:
cmp dword ptr [eax+08],02 // checking for MP pot?
jne finished_check
mov dword ptr[eax+08],12 // change to auto pot
mov dword ptr[eax+10],12
finished_check:
cmp dword ptr [eax+08],13
je 0052d13a
exit:
jmp returnhere
[DISABLE]
dealloc(newmem)
0052D09F:
cmp dword ptr [eax+08],13
db 0F 84 91 00 00 00
Give
[Only registered and activated users can see links. Click Here To Register...] to noname231
Teleport Hack: Changes the Teleport Location of the map specified to 0,0 as well as the teleport destination.
Code:
[ENABLE]
alloc(TeleHack,1024)
label(ChangeTele)
label(SkipChange)
label(ReturnTele)
00553843: //0F B7 98 04 01 00 00 8B 45 00
jmp TeleHack
nop
nop
ReturnTele:
TeleHack:
movzx ebx,word ptr [eax]
cmp bx,0483 // check for Python Castle -> Tomb of the Black Dragon
je ChangeTele
cmp bx,4E20 // check for Braiken Castle -> Draco Desert
je ChangeTele
cmp bx,2B8C // check for North Morte -> Acquirai Ruins
je ChangeTele
cmp bx,048D // check for tomb of the black dragon -> Cursed Mazed
je ChangeTele
jmp SkipChange
ChangeTele:
mov word ptr [eax+00000106],0005
mov word ptr [eax+0000010C],0005
SkipChange:
movzx ebx,word ptr [eax+00000104]
jmp ReturnTele
[DISABLE]
dealloc(TeleHack)
00553843:
movzx ebx,word ptr [eax+00000104]
NOTE: Extra instructions are needed for this script.
1. You MUST activate telehack BEFORE loading the map you want to telehack
2. See on the script how it says "Braiken Castle -> Draco Desert", that means that you have to go to 0:0 on Braiken
3. To go to 0:0 you need to do wall hack
Give
[Only registered and activated users can see links. Click Here To Register...] to Keith1
GMDetect: If a GM is detected the client will crash (you stay visible in the game for 30 seconds afterwords).
Code:
[ENABLE]
alloc(DetectGM,25)
label(ReturnName)
00553763: //C7 46 0C 00 00 00 00 89 47 04
jmp DetectGM
nop
nop
ReturnName:
DetectGM:
cmp [eax+70],5D4D475B //[GM]
je 00000000
mov [esi+0c],00000000
jmp ReturnName
[DISABLE]
dealloc(DetectGM)
00553763:
mov [esi+0c],00000000
Give
[Only registered and activated users can see links. Click Here To Register...] to Keith1
Elusive: Teleports you from any position on the map to position 0:0 when enabled.
Code:
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(x_location)
label(y_location)
label(z_location)
registersymbol(x_location)
registersymbol(y_location)
registersymbol(z_location)
label(exit)
005F2FFB: //8B 08 8B 50 04 89 4C 24 20
jmp newmem
returnhere:
newmem:
mov ecx,x_location
mov ecx,[ecx]
cmp ecx,0
//je originalcode
mov [eax],ecx
mov ecx,y_location
mov ecx,[ecx]
cmp ecx,0
//je originalcode
mov [eax+04],ecx
mov ecx,z_location
mov ecx,[ecx]
cmp ecx,0
//je originalcode
mov [eax+08],ecx
originalcode:
mov ecx,[eax]
mov edx,[eax+04]
exit:
jmp returnhere
x_location:
dd 00000000
y_location:
dd 00000000
z_location:
dd 00000000
[DISABLE]
dealloc(newmem)
005F2FFB:
mov ecx,[eax]
mov edx,[eax+04]
Give
[Only registered and activated users can see links. Click Here To Register...] to L.e.v.i.a.t.h.a.n
Drako Vac(Could be improved): This is a vacume I ran into when trying to create another vacume(so this one is still in an experimental stage) I am releasing it because I want you to know what you think. PM me with the results
Code:
[ENABLE]
alloc(DrakoVac,1024)
label(GetCharAddress)
label(SkipGetCharAddress)
label(ReturnVac)
label(ReturnCharAddress)
label(CharAddress)
label(AddX)
label(AddY)
registersymbol(CharAddress)
registersymbol(AddX)
registersymbol(AddY)
005E2823: //89 56 10 8B 48 0C 89 4E 14 8B
jmp DrakoVac
nop
ReturnVac:
005A6D11: //89 0E C1 EA 10 F3 0F 11 46 08
jmp GetCharAddress
ReturnCharAddress:
DrakoVac:
push ebx
mov ebx,[CharAddress]
fld [ebx+08]
fadd [AddX]
fstp [esi+0c]
fld [ebx+0c]
fadd [AddY]
fstp [esi+10]
pop ebx
mov ecx,[eax+0c]
jmp ReturnVac
GetCharAddress:
cmp [CharAddress],00
jne SkipGetCharAddress
mov [CharAddress],esi
SkipGetCharAddress:
mov [esi],ecx
shr edx,10
jmp ReturnCharAddress
CharAddress:
db 00 00 00 00
AddX:
db 00 00 00 00
AddY:
db 00 00 00 00
[DISABLE]
dealloc(DrakoVac)
unregistersymbol(CharAddress)
unregistersymbol(AddX)
unregistersymbol(AddY)
005E2823:
mov [esi+10],edx
mov ecx,[eax+0c]
005A6D11:
mov [esi],ecx
shr edx,10
Give thanks to Drako (me)
===Data File Editing (aka csv editing) (aka WinHex hacks)===
Data File Editing Instructions:
1. Download the
[Only registered and activated users can see links. Click Here To Register...] and place the contents inside your
2Moons\bin folder
2. (Un-needed) Make a shortcut of the
Launcher.exe to your desktop so you can run it easily from the desktop
3. Run the
Launcher.exe and after the
Dekaron CRC Bypass v2.0 window appears, just click
Launch button.
4. The game will open so wait until you get to the server selection and then exit the game
5. Download
[Only registered and activated users can see links. Click Here To Register...] and place the
Dekaron Data-Unpacker.exe in the
2Moons\data folder
6. Run
Dekaron Data-Unpacker.exe and wait a while it extracts all the files that are inside the
pack.d0* files
7. When the
Dekaron Data-Unpacker is finished there will be a
data folder in
2Moons\data
8. There is also a
movie folder and a
sound folder. Delete them or move them somewhere else.
9. You have to take all the folders in
2Moons\data\data folder and put them in
2Moons\data
A. Next you must open the
shadow.txt file and edit the number to the right of
PackIO from
1 to
0
B. Now it is time to do your edits to the data files for your desired hack
This is an example of how the csv files opened in excel SHOULD NOT look like.
[Only registered and activated users can see links. Click Here To Register...]
This is an example of how the csv files opened in excel SHOULD look like.
[Only registered and activated users can see links. Click Here To Register...]
To fix it: Open excel, and go to Data/Get External Data/Import Data
then open the csv file, click
Next, and click the
check box next to
Comma, then click
Next, then
Finish
C. To run the game you must run the
Launcher and, if it is in the
bin folder, just click
Launch
D. If the
Launcher.exe is NOT in the bin folder then you must look for
dekaron.exe by clicking on the
... button
NOTE: After you have edited the ".csv"s and you play the game, the CRCBypass will work only once per log in.
To change Sub-servers, you must restart the entire game
Give
[Only registered and activated users can see links. Click Here To Register...] to Nebular for the CRCBypass
Give
[Only registered and activated users can see links. Click Here To Register...] to todesengelXx for the Data-Unpacker
GodMode (new name: MAD-H, MonsterAttackDissabler-Hack): Makes monster never attempt to attack you
NOTE: This CAN be made into a CheatEngine script, just no1 has tried
1. Open: 2Moons\data\share\ai\pattern\positive_attack.csv
2. On column D when you see "MELEE_ATTACK" or "RANGE_ATTACK" change it to "PERSUIT"
3. Open: 2Moons\data\share\creature\monster.csv
4. Go down the rows until you find the monster you want godmode to work on.
5. After you find it go to column AL and put a 1 in that box
This will only enable godmode on monsters with AIKey at 1.
To enable godmode on all monsters you can either do what you did in this file or do the Vac (Next Hack).
Give
[Only registered and activated users can see links. Click Here To Register...] to throwawayid
10E6831D
Vac: makes all the monsters run towards you when they see you
1. Open: 2Moons\data\share\ai\info.csv
2. On box B2 (DwExploreRange...........for 101=SpiderLarva) change the 4 to 1000
3. On box C2 (DwSight........................for 101=SpiderLarva) change the 13 to 1000
4. On box D2 (DwPersuitRange...........for 101=SpiderLarva) change the 13 to 1000
5. On box F2 (DwExploreStandDelay...for 101=SpiderLarva) change the 2000 to 0
6. On box I2 (DwMoveDelay................for 101=SpiderLarva) change the 1000 to 1
7. On box Q2 (dwFollowTarget............for 101=SpiderLarva) change the 2 to 1000
8. Open: 2Moons\data\share\creature\monster.csv
9. On box AL2 (AIKey...........................for 101=SpiderLarva) change the 2 to 1
This will enable vac only for Spider Larva
To enable the vacuum for other monsters, do all the same steps for each row that corresponds to each monster you want to vac.
Give
[Only registered and activated users can see links. Click Here To Register...] to Mr_Twister
Mob Speed: Makes monsters run towards you faster (Useful when vacuuming)
1. Open: 2Moons\data\share\creature\monster.csv
2. On box Z2 change the 2.7 to 10
This will only change mob speed for Spider Larva.
To change the mob speed of other monsters you can do the same steps but for the rows corresponding to those monsters.
Give
[Only registered and activated users can see links. Click Here To Register...] to Mr_Twister
WallHack: This edit allows you to walk through walls,hills,water...ect
1. Open: 2Moons\data\share\maplist.csv
2. On box F2 change "braiken.mac" to "web_image.mac"
This will enable WallHack in Braiken Castle.
To enable WallHack in other maps just go down the rows and do the same steps.
Give
[Only registered and activated users can see links. Click Here To Register...] to Mastershouter
StoreHack: Lets you place items on your personal store on every map for extra storage
1. Open: 2Moons\data\share\maplist.csv
2. On box AF3 change the 0 to 1
This will only enable your personal store on Denebe
To enable StorageHack on other maps you must go down the rows and do the same steps
Give
[Only registered and activated users can see links. Click Here To Register...] to Mastershouter
Auto Pots: Lets the game use regular potions as auto potions
1. Open: 2Moons\data\share\item\itemetc.csv
2. On boxes E6 and G6 change the 1 to 17
3. On boxes E7 and G7 change the 2 to 17
This will only enable auto potions only with Health Potions and Mana Potions
To enable Auto Pots with other potions you must look for them and do the same steps
Give
[Only registered and activated users can see links. Click Here To Register...] to Mastershouter
Speed Hack: Changes your speed on a certain map
1. Open: 2Moons\data\share\maplist.csv
2. On box AP2 change the 1 to 2
Doing this you have doubled your speed only on Braiken Castle.
To go faster you Change the highlighted 1 to 3 for 3x your speed or 4 for 4x your speed and so on...
You must do the same in other maps for this to be enabled
Give
[Only registered and activated users can see links. Click Here To Register...] to Mastershouter
Zoom Hack: Changes your Maximum Zoom so that you can zoom as far as you like.
1. Open: 2Moons\data\share\maplist.csv
2. On box I2 change the 18 to 75
This is only for Braiken Castle
You must do this for each map you want to do Zoom Hack on
Give
[Only registered and activated users can see links. Click Here To Register...] to Mastershouter
Mass Spawn: Changes the speed that bosses can summon spawns.
of Egos that Ivid Laiden summons and how fast it summons them so you can train on the Egos. (can be done for other bosses)
1. Open: 2Moons\data\share\action\monster\reiden.act.2732.c sv (NOTE: there is no space between the c and the s, its the forum's fault)
2. On box G13 change the 2.5 to 0 (will be different 4 different mobs, look for Index 9 on column C)
(The following steps are not needed if you use the Cheat Engine [VacPart1] or [VacAllTogether])
3. Open: 2Moons\data\share\ai\info.csv
4. On box Q368 change the 4 to 1000 (dwFollowTarget column)
5. On box AK368 change the 3 to 190 (dwMaxSummonsMonsterCount column)
6. On box AL368 change the 3000 to 1 (dwMaxSummonsMonsterCount column)
Give
[Only registered and activated users can see links. Click Here To Register...] to sachamo512
(Reques Beach)Forgery = fogery.act.2025.csv
(Reques Beach)Demon Syph = demon_saiph.act.2026.csv
(Tomb of the Black Dragon)Oread = oread.act.2280.csv
(Treasure of Crespo A)Ivid Laiden = reiden.act.2732.csv
===Trash Can===
CRCbypass IS working for
newest version (Updated 16/01/2010) just make sure you delete the
2Moons\big\CRC file and that the
shadow.txt has PackIO set to 1 (Before beginning to read the instructions for data editing below)
[Only registered and activated users can see links. Click Here To Register...] (if you need more specific instructions, with pics)
[Only registered and activated users can see links. Click Here To Register...] (if the last link was not enough)
Newest working CRC bypass can be found [Only registered and activated users can see links. Click Here To Register...].
Non-Aggro: Makes the Mob not attack you and run past you instead
Code:
[ENABLE]
alloc(NonAggro,1024)
label(ReturnAggro)
0053A30A: //0F B7 86 54 01 00 00 8B 0D
jmp NonAggro
nop
nop
ReturnAggro:
NonAggro:
mov byte ptr [esi+00000174],00 // malee attack range = 0
mov byte ptr [esi+00000244],00 // magic attack range = 0
mov [esi+00000240],0000000 //other attack range = 0
mov [esi+0000023c],0000000 //other attack range = 0
mov [esi+00000238],0000000 //other attack range = 0
mov eax,05
mov word ptr [esi+00000154],ax
jmp ReturnAggro
[DISABLE]
dealloc(NonAggro)
0053A30A:
movzx eax,word ptr [esi+00000154]
Give
[Only registered and activated users can see links. Click Here To Register...] to noname231
GMDetect: If a GM is detected your character will be teleported and other hacks disabled
WallHack: This hack allows you to walk through walls,hills,water...ect
NOTE: I will use Loa.mac as an example, also you must NOT be in the map for this to work
1. Download the
[Only registered and activated users can see links. Click Here To Register...] and save it anywhere you can access it easily
2. Run 2Moons, CheatEngine and open the MapList
3. Attach CheatEngine to 2Moons
4. On the MapList look for Loa Castle and copy the "6C 6F 61 2E 6D 61 63 00" on that same line
5. Go to CheatEngine and on the search section, change the Value type to Array of Bytes
6. Paste your numbers on the white rectangle next to were it says Hex (yes it should be check-marked)
7. Click First Scan and you should get some results
8. IF the first two addresses start with 03XXXXXX, disregard them, they are not the right ones (so don't touch them)
9. Double click all of your finds to add them to the CheatTable
A. Click on the line that just appeared in your CheatTable to highlight it
B. Press Enter on your keyboard to open the Value window of the highlighted address
C. Go back to the MapList and look at the bottom line
D. Copy the "77 65 62 5F 69 6D 61 67 65 2E 6D 61 63 00" (the numbers next to web_image.mac)
E. Paste the numbers on the Value window and click the OK button
F. Do steps A, B, and E for each address (unless you only found one result, lol)
Now Hopefully you can now walk through walls in LoaCastle
NOTE: step #4 is the only step that will change with respect to the map you want to wallhack
PlayerAttackRange: This changes the name of your normal attacks (NOT SKILLS)
Code:
[ENABLE]
alloc(ModRange,21)
label(ReturnRange)
label(Range)
registersymbol(Range)
0067AA14: //88 81 AC 00 00 00 C2 04 00 CC
jmp ModRange
nop
ReturnRange:
ModRange:
mov al,[Range]
mov [ecx+000000ac],al
jmp ReturnRange
Range:
db 40
[DISABLE]
dealloc(ModRange)
unregistersymbol(Range)
0067AA14:
mov [ecx+000000ac],al
Well I wrote the script from scratch just using the address but I don't know who originally found the address
So credits for the script ONLY goes to me (fixed by fliptrickdragon & bottomy)
credits for the address... not me