[Release]12Sky Lotus - Dupe Hack

12/23/2020 14:29 CodingIsALifeStyle#1
TwelveSky Lotus

Dupe Hack


Important informations:
-Use game Resolution: Window mode / 1024x768
-You need at last 2 accounts


GUI:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]


DOWNLOAD:
[Only registered and activated users can see links. Click Here To Register...]


How to dupe items?
You need 2 accounts. If you got them then follow next steps.
You need to have two clients open, thats important.

1.) Open the Twelvesky client. [#1CLIENT]
2.) Then open a new TwelveSky cliet with Sandboxie. [#2CLIENT]

3.) Login to your first account and enter the world, search a safe spot to dupe.
4.) Login to your secound account. But do not enter the world yet!

5.) Now you need to changer your [#1CLIENT] Character name and User ID to exact the same as [#2CLIENT].
To do that simply start the 12Sky Lotus Dupe Hack and fill in all input boxes. And select a character from [#2CLIENT] you want to cheat on.
6.) Press the 'Set' button and the selected [#2CLIENT] character name & user ID will now change.

7.) Now login with your [#2CLIENT] into the world. But be sure that your [#1CLIENT] is not on the same map
otherwise you will get a 10min dc!
8.) After entering the world [#2CLIENT] should be logged in the same account as your are with the [#1CLIENT].

9.) Now drop everything from [#1CLIENT] you wanna duplicate.
10.) Logout your [#1CLIENT] first! And after that you need to logout your [#2CLIENT].

11.) Now you need to be fast and pick up your droped items. So login back with [#1CLIENT] and get fast to the spot you droped your items.
12.) You can use the 'Fast login' tool included in the dupe hack to login super fast.
Dont forget to use the 'Bypass code' for a comfortable login.

13.) You just have successfully duplicated your items. Have fun!







Features:
-Bypass code (Bypasses your 6-digit code/2nd password code for faster login)
-Gm Mode (You get gm rights & its changes your name to the owners)

Usefull gm command:
/movezone


Full source code:
[Only registered and activated users can see links. Click Here To Register...]

Always remember cheating can be bannable!
Have fun ;) Dont forget to give me a 'thanks' if u like it!
12/23/2020 18:43 zahter55#2
I follow ur posts... U re in a wrong way... U have forgotten to ask for credit card informations on that fkn photo... Will u say i didnt try it?
12/23/2020 22:17 CodingIsALifeStyle#3
Dude what you talking about. You act like its a scamm. Dude you didnt even tested the dupe hack but start hateing wtf is wrong with you.

Here full source code:
Quote:
#RequireAdmin
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>

Global $fHover = False
Global $fHover_heading = False
Global $fHover_set_button = False
Global $fHover_login_button = False

;~ Load last User settings
$victimID = FileReadLine(@ScriptDir&"\Data\saves\id.dll",1)
$victimName = FileReadLine(@ScriptDir&"\Data\saves\name.dll",1)

$CharPosition = FileReadLine(@ScriptDir&"\Data\saves\position.dll" ,1)

;~ Load last Fast login informations
$CharID = FileReadLine(@ScriptDir&"\Data\saves\fast_login\id .dll",1)
$CharPW = FileReadLine(@ScriptDir&"\Data\saves\fast_login\pw .dll",1)
$CharCODE = FileReadLine(@ScriptDir&"\Data\saves\fast_login\co de.dll",1)

;~ GUI & Stuff
#Region ### START Koda GUI section ### Form=C:\Users\rust_\OneDrive\Desktop\12Sky Lotus - Premium Edition\Data\koda\gui.kxf
$dupe_hack_2020 = GUICreate("12Sky Lotus Dupe Hack by RWH - Premium Edition", 450, 258, 553, 271, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
GUISetBkColor(0x000000)
$background_logo = GUICtrlCreatePic(@ScriptDir&"\Data\bg\ts_logo_1.jp g", 120, 8, 202, 52)
$group1_settings = GUICtrlCreateGroup("", 16, 64, 137, 185, -1, $WS_EX_TRANSPARENT)
$settings = GUICtrlCreateLabel("Settings", 59, 80, 50, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$char_name = GUICtrlCreateLabel("Char. name:", 27, 104, 72, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$user = GUICtrlCreateLabel("User ID:", 27, 144, 51, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$position_char = GUICtrlCreateLabel("Char. selection:", 27, 184, 93, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$position = GUICtrlCreateCombo($CharPosition, 24, 200, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "[none]|1.First character|2.Second character|3.Third character")
$setbutton = GUICtrlCreateButton("Set", 24, 224, 123, 19)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$user_name = GUICtrlCreateCombo($victimName, 24, 120, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$user_id = GUICtrlCreateCombo($victimid, 24, 160, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$group2_fastlogin = GUICtrlCreateGroup("", 160, 64, 137, 185)
$fastlogin = GUICtrlCreateLabel("Fast login", 203, 80, 59, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_id = GUICtrlCreateLabel("User ID:", 171, 104, 51, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_pw = GUICtrlCreateLabel("Password:", 171, 144, 62, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_code = GUICtrlCreateLabel("Code:", 171, 184, 37, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$login = GUICtrlCreateButton("Login", 168, 224, 123, 19)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$login_char_id = GUICtrlCreateCombo($CharID, 168, 120, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$login_char_pw = GUICtrlCreateCombo($CharPW, 168, 160, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$login_char_code = GUICtrlCreateCombo($CharCODE, 168, 200, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$group3_extras = GUICtrlCreateGroup("", 304, 64, 129, 185)
$save_last_info_1 = GUICtrlCreateLabel("Save the last", 327, 82, 79, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$save_last_info_2 = GUICtrlCreateLabel("user informations.", 327, 98, 104, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$savebutton = GUICtrlCreateButton("X", 312, 80, 13, 33)
$bypasscode = GUICtrlCreateCheckbox("", 312, 120, 14, 14)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $GUI_CHECKED)
$bypasscode_1 = GUICtrlCreateLabel("Bypass code", 328, 120, 76, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 2)
$gmmode_1 = GUICtrlCreateCheckbox("", 312, 140, 14, 14)
$gmmode_2 = GUICtrlCreateLabel("GM MODE", 328, 140, 76, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 2)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;~ GUI & Stuff End

;~ Check whether game is started or not, if not close program
$LotusSky = ProcessExists("Lotus-12Sky.exe")
If $LotusSky = 0 Then
MsgBox(16,"Error #1","TwelveSky Lotus isn't started!")
Exit
EndIf


;~ Set window/gui always on top
WinSetOnTop("12Sky Lotus Dupe Hack by RWH - Premium Edition","",1)

While 1

;~ Bypass ID
Global $PID = ProcessExists("Lotus-12Sky.exe") ;~ Check for game..
Global $hOpenGame = _MemoryOpen($PID) ;~ Check for game..
Global $IDbypass = 0x00E5039C ;~ 6-digit code window address
Global $WriteIDbypass = _MemoryWrite($IDbypass, $hOpenGame, "0",'dword') ;~ Remove 6-digit window
_MemoryClose($hOpenGame)


;~ If mouse over savebutton then change data
$aInfo = GUIGetCursorInfo($dupe_hack_2020)
If Not @error Then $idHover = $aInfo[4]

;~ Save button
If $idHover = $savebutton Then
GUICtrlSetData($savebutton,"x")
$fHover_heading = True
Else
If $fHover_heading Then
$fHover_heading = False
GUICtrlSetData($savebutton,"X")
EndIf

;~ Heading_logo
If $idHover = $background_logo Then
ToolTip("USE THIS HACK IN RESOLUTION: 1024x768"&@CRLF&"Thanks for using. Have fun!")
GUICtrlSetImage($background_logo, @ScriptDir&"\Data\bg\ts_logo_2.jpg")
$fHover = True
Else
If $fHover Then
$fHover = False
ToolTip("")
GUICtrlSetImage($background_logo, @ScriptDir&"\Data\bg\ts_logo_1.jpg")
EndIf

;~ Set button
If $idHover = $setbutton Then
GUICtrlSetData($setbutton,"- Set -")
$fHover_set_button = True
Else
If $fHover_set_button Then
$fHover_set_button = False
GUICtrlSetData($setbutton,"Set")
EndIf

;~ Login button
If $idHover = $login Then
GUICtrlSetData($login,"- Login -")
$fHover_login_button = True
Else
If $fHover_login_button Then
$fHover_login_button = False
GUICtrlSetData($login,"Login")
EndIf

EndIf
EndIf
EndIf
EndIf



;~ End Region

$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ProcessClose("IDbypass.exe")
Exit
Case $gmmode_1
;~ GM MODE ACTIVATED
If BitAnd(GUICtrlRead($gmmode_1), $GUI_CHECKED) Then

GUICtrlSetState($gmmode_1, $GUI_UNCHECKED)

;~ Check for game..
Global $PID = ProcessExists("Lotus-12Sky.exe")
Global $hOpenGame = _MemoryOpen($PID)

Global $BaseAddress = 0x00400000
Global $StaticOffsetModel = 0x0067F8D4
Global $StaticOffsetName = 0x0069C50C

Global $ReadWeaponName = _memoryread($BaseAddress + $StaticOffsetName, $hOpenGame) + 0x4
Global $ReadWeaponModel = _memoryread($BaseAddress + $StaticOffsetModel, $hOpenGame) + 0x2C

$WriteWeaponName = _MemoryWrite($ReadWeaponName, $hOpenGame, "GAME MASTER [MOD] by RWH®" , 'char[23]')
$WriteWeaponModel = _MemoryWrite($ReadWeaponModel, $hOpenGame, "519" , 'dword')

Global $gamemaster_address = 0x00554913
Global $namehack_1_address = 0x00A9FC70
Global $namehack_2_address = 0x0111ED78

Global $gmaster_address = _MemoryWrite($gamemaster_address, $hOpenGame, "1",'dword')

Global $namehack_1 = _MemoryWrite($namehack_1_address, $hOpenGame, "[GM]Ornn",'char[20]')
Global $namehack_1 = _MemoryWrite($namehack_2_address, $hOpenGame, "[GM]Ornn",'char[20]')

_MemoryClose($hOpenGame)

EndIf

Case $bypasscode
;~ Bypassing ID / Close IDbypass.exe
If BitAnd(GUICtrlRead($BypassCode),$GUI_UNCHECKED) = $GUI_UNCHECKED then
ProcessClose("IDbypass.exe")
EndIf

Case $setbutton
;~ Set Character name & user ID & character position 1/2/3
;~ Change character name & Change user ID
Global $PID = ProcessExists("Lotus-12Sky.exe")
Global $hOpenGame = _MemoryOpen($PID)

Global $1_CharName = 0x00E4B2D8
Global $2_CharName = 0x00E4A300
Global $3_CharName = 0x00E4C2B0

Global $ID = 0x005548C0

;~ Select character position 1/2/3
Global $ReadPosition = GUICtrlRead($position)

If $ReadPosition = "1.First character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($1_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf

If $ReadPosition = "2.Second character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($2_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf

If $ReadPosition = "3.Third character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($3_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf

_MemoryClose($hOpenGame)




Case $savebutton
;~ Saves last entred informations
Global $ReadMyID = GUICtrlRead($user_id)
Global $ReadMyNAME = GUICtrlRead($user_name)

Global $ReadMyCode = GUICtrlRead($login_char_code)
Global $ReadMyLoginID = GUICtrlRead($login_char_id)
Global $ReadMyLoginPW = GUICtrlRead($login_char_pw)
Global $ReadMyPosition = GUICtrlRead($position)

;~ Write my ID
FileDelete(@ScriptDir&"\Data\saves\id.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\id.dll",$ReadMyI D)

;~ Write my NAME
FileDelete(@ScriptDir&"\Data\saves\name.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\name.dll",$ReadM yNAME)

;~ Write my CODE
FileDelete(@ScriptDir&"\Data\saves\fast_login\code .dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\code. dll",$ReadMyCode)

;~ Write my login_ID
FileDelete(@ScriptDir&"\Data\saves\fast_login\id.d ll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\id.dl l",$ReadMyLoginID)

;~ Write my login_PW
FileDelete(@ScriptDir&"\Data\saves\fast_login\pw.d ll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\pw.dl l",$ReadMyLoginPW)

;~ Write my Position
FileDelete(@ScriptDir&"\Data\saves\position.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\position.dll",$R eadMyPosition)

GUICtrlSetState($savebutton, $GUI_DISABLE)

Case $login
;~ Fast login into your account
Global $ReadID = GUICtrlRead($login_char_id)
Global $ReadPW = GUICtrlRead($login_char_pw)
Global $ReadCODE = GUICtrlRead($login_char_code)

MouseClick("left",683, 405,1,1)
Sleep(500)
MouseClick("right",960, 525,1,1)
Sleep(500)
Send($ReadID)
Sleep(50)
Send("{TAB}")
Send($ReadPW)
Sleep(50)
Send("{ENTER}")
Sleep(500)


MouseClick("left",970, 569,1,1)
Send($ReadCODE)
Sleep(50)
MouseClick("left",972, 630,1,1)
Sleep(100)

Global $ReadPosition = GUICtrlRead($position)

If $ReadPosition = "[none]" Then

EndIf

If $ReadPosition = "1.First character" Then
MouseClick("left",666, 577,1,1)
EndIf

If $ReadPosition = "2.Second character" Then
MouseClick("left",969, 626,1,1)
EndIf

If $ReadPosition = "3.Third character" Then
MouseClick("left",1255, 587,1,1)
EndIf

MouseClick("left",1377, 724,1,1)





EndSwitch
WEnd
Quote:
Originally Posted by Agresive3 View Post
you just copied that guy hack and change the interface :)) cmon.
This is my hack. Its not perfect. But its working and i wrote ths shit :) ;)
01/02/2021 08:05 Mega Byte#4
Not super familiar with AutoIt so take with a grain of salt.

But initial upload/script looks clean to me.
By that I mean it looks to do what it is intended for without having extra nasty code to steal logins or do other harmful things at least in the auto it side.

- Has a fast login feature.
- Changes the userid helping to automate the known exploit of simply changing these and going through a portal. (Account Hijack/Dupe expoit in TS1).

Reason why this exploit works, the TS1 zone servers just accept the user input and log you in as that character. /facepalm
Of course there is a method to do the actual duping involving changing zones etc I wont get into it.

Have not actually run it or tested, but if its doing what I think its doing it should work on vulnerable ts1 servers that have not patched the exploit out that are using a client where the addresses match up with what is hard coded. Note: Signature scanning perhaps via an injected dll or processing the game exe if it is infact unpacked could make this work on any TS1 exe. (Although in saying that most servers likely use the same one given the age of this game).

Suggest to store data in .ini files or something.

Otherwise nice, it is refreshing to see a tool made by someone and released here that is not a keylogger/trojan for once.


-- Brief notes on decompiling to check for bad in-case others want to know how I go about it, never do such things on your real PC always a VM or sandbox. --
There is an auto it decompiler such as myAut2Exe or Exe2Aut.
Which can decompile, could be run in a Windows Virtualbox VM or perhaps Windows Sandbox as a precaution against accidentally running any code.

Of course you need to unpack first if packed.
Detect it easy (DIE) or PEID can be helpful to determine the packing of an exe.

This exe is not packed.

Tools/links used.
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...] (Virtual Box is an emulator lets you run a virtual machine)
[Only registered and activated users can see links. Click Here To Register...] (For a VM as I was lazy to install windows my self from an ISO on a new vm.)
[Only registered and activated users can see links. Click Here To Register...] (Great number of tools and such)

You would save a snapshot on the VM first.
Then load anything you think is questionable into it to analyze/unpack/decompile etc.
01/09/2021 10:35 corgi001#5
How do I copy items
01/10/2021 11:12 CodingIsALifeStyle#6
Quote:
Originally Posted by corgi001 View Post
How do I copy items
Step by step guide has been uploaded. ;)
05/31/2025 14:26 hllowrld#7
Error:game not found
05/31/2025 17:32 CodingIsALifeStyle#8
You serious? Lotus server is offline over years already.. wtf you trying to do.
05/31/2025 21:36 hllowrld#9
i want to use it to other server