Skip to content

Instantly share code, notes, and snippets.

@fakuivan
Last active August 1, 2019 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fakuivan/e484fc8d22e94d6a8539ef0a706e34a3 to your computer and use it in GitHub Desktop.
Save fakuivan/e484fc8d22e94d6a8539ef0a706e34a3 to your computer and use it in GitHub Desktop.
Swaps licenses for the dev version of dishonored 2
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="27">
<CheatEntries>
<CheatEntry>
<ID>53</ID>
<Description>"Havok license bypasses"</Description>
<LastState Value="" RealAddress="00000000"/>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>4</ID>
<Description>"Base address"</Description>
<LastState RealAddress="7FF65B7C0D20"/>
<VariableType>String</VariableType>
<Length>0</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>"Dishonored2_x64.exe.unpacked.exe"+33D0D20</Address>
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"Physics license"</Description>
<VariableType>String</VariableType>
<Length>93</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+60*0</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>0xe5a3caea-0x6e3b758c:2023-01-28.Physics.ZenimaxMedia_ArkaneStudios_BlackSparrow_PcDurangoPS4</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>62</ID>
<Description>"Bypass date checking"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Dishonored2_x64.exe.unpacked.exe
Version:
Date : 2019-01-31
Author : yomama
This script does drugz
}
[ENABLE]
aobscanmodule(bypass_hknp_license_date_check,Dishonored2_x64.exe.unpacked.exe,48 3D F4 03 00 00 7E 42 48 8D 0D * * * * E8 4A) // should be unique
alloc(newmem,$1000,"Dishonored2_x64.exe.unpacked.exe"+1BBDA02)
label(code)
label(return)
newmem:
mov rax,0
code:
cmp rax,000003F4
jmp return
bypass_hknp_license_date_check:
jmp newmem
nop
return:
registersymbol(bypass_hknp_license_date_check)
[DISABLE]
bypass_hknp_license_date_check:
db 48 3D F4 03 00 00
unregistersymbol(bypass_hknp_license_date_check)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Dishonored2_x64.exe.unpacked.exe"+1BBDA02
"Dishonored2_x64.exe.unpacked.exe"+1BBD9E0: 48 63 C8 - movsxd rcx,eax
"Dishonored2_x64.exe.unpacked.exe"+1BBD9E3: 48 63 C7 - movsxd rax,edi
"Dishonored2_x64.exe.unpacked.exe"+1BBD9E6: 48 03 D1 - add rdx,rcx
"Dishonored2_x64.exe.unpacked.exe"+1BBD9E9: 48 69 D2 80 51 01 00 - imul rdx,rdx,00015180
"Dishonored2_x64.exe.unpacked.exe"+1BBD9F0: 48 C1 FA 08 - sar rdx,08
"Dishonored2_x64.exe.unpacked.exe"+1BBD9F4: 48 2B D0 - sub rdx,rax
"Dishonored2_x64.exe.unpacked.exe"+1BBD9F7: 48 8B C2 - mov rax,rdx
"Dishonored2_x64.exe.unpacked.exe"+1BBD9FA: 48 99 - cqo
"Dishonored2_x64.exe.unpacked.exe"+1BBD9FC: 48 33 C2 - xor rax,rdx
"Dishonored2_x64.exe.unpacked.exe"+1BBD9FF: 48 2B C2 - sub rax,rdx
// ---------- INJECTING HERE ----------
"Dishonored2_x64.exe.unpacked.exe"+1BBDA02: 48 3D F4 03 00 00 - cmp rax,000003F4
// ---------- DONE INJECTING ----------
"Dishonored2_x64.exe.unpacked.exe"+1BBDA08: 7E 42 - jle Dishonored2_x64.exe.unpacked.exe+1BBDA4C
"Dishonored2_x64.exe.unpacked.exe"+1BBDA0A: 48 8D 0D 2F A6 FA 01 - lea rcx,[Dishonored2_x64.exe.unpacked.exe+3B68040]
"Dishonored2_x64.exe.unpacked.exe"+1BBDA11: E8 4A A7 CF FF - call Dishonored2_x64.exe.unpacked.exe+18B8160
"Dishonored2_x64.exe.unpacked.exe"+1BBDA16: B8 02 00 00 00 - mov eax,00000002
"Dishonored2_x64.exe.unpacked.exe"+1BBDA1B: 4C 8B B4 24 B8 00 00 00 - mov r14,[rsp+000000B8]
"Dishonored2_x64.exe.unpacked.exe"+1BBDA23: 48 8B AC 24 A8 00 00 00 - mov rbp,[rsp+000000A8]
"Dishonored2_x64.exe.unpacked.exe"+1BBDA2B: 4C 8B AC 24 B0 00 00 00 - mov r13,[rsp+000000B0]
"Dishonored2_x64.exe.unpacked.exe"+1BBDA33: 48 8B 4C 24 60 - mov rcx,[rsp+60]
"Dishonored2_x64.exe.unpacked.exe"+1BBDA38: 48 33 CC - xor rcx,rsp
"Dishonored2_x64.exe.unpacked.exe"+1BBDA3B: E8 F0 3F C1 00 - call Dishonored2_x64.exe.unpacked.exe+27D1A30
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>63</ID>
<Description>"No description"</Description>
<VariableType>Byte</VariableType>
<Address>"Dishonored2_x64.exe.unpacked.exe"+B72DB08</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>1</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
<CheatEntry>
<ID>64</ID>
<Description>"No description"</Description>
<VariableType>Byte</VariableType>
<Address>"Dishonored2_x64.exe.unpacked.exe"+B77DDFE</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>1</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>1</ID>
<Description>"Cloth license"</Description>
<VariableType>String</VariableType>
<Length>91</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+60*1</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>0x3438c72c-0x3fa0784a:2023-01-28.Cloth.ZenimaxMedia_ArkaneStudios_BlackSparrow_PcDurangoPS4</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
<CheatEntry>
<ID>2</ID>
<Description>"Ai license"</Description>
<VariableType>String</VariableType>
<Length>88</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+60*2</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>0x1a353a2c-0x11ad854a:2023-01-28.Ai.ZenimaxMedia_ArkaneStudios_BlackSparrow_PcDurangoPS4</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
<CheatEntry>
<ID>3</ID>
<Description>"Fx license"</Description>
<VariableType>String</VariableType>
<Length>88</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+60*3</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>18</Key>
<Key>75</Key>
</Keys>
<Value>0x2fc1e9bb-0x245956dd:2023-01-28.Fx.ZenimaxMedia_ArkaneStudios_BlackSparrow_PcDurangoPS4</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>65</ID>
<Description>"FOV"</Description>
<VariableType>Float</VariableType>
<Address>Dishonored2_x64.exe.unpacked.exe+B189DD4</Address>
<Hotkeys>
<Hotkey>
<Action>Decrease Value</Action>
<Keys>
<Key>109</Key>
</Keys>
<Value>5</Value>
<ID>0</ID>
</Hotkey>
<Hotkey>
<Action>Increase Value</Action>
<Keys>
<Key>107</Key>
</Keys>
<Value>5</Value>
<ID>1</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
<CheatCodes>
<CodeEntry>
<Description>Check physics license</Description>
<Address>7FF7E633D680</Address>
<ModuleName>Dishonored2_x64.exe.unpacked.exe</ModuleName>
<ModuleNameOffset>1BBD680</ModuleNameOffset>
<Before>
<Byte>CC</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
</Before>
<Actual>
<Byte>40</Byte>
<Byte>53</Byte>
</Actual>
<After>
<Byte>56</Byte>
<Byte>57</Byte>
<Byte>41</Byte>
<Byte>54</Byte>
<Byte>41</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Jump here to bypass</Description>
<Address>7FF7E633DA93</Address>
<ModuleName>Dishonored2_x64.exe.unpacked.exe</ModuleName>
<ModuleNameOffset>1BBDA93</ModuleNameOffset>
<Before>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>EB</Byte>
<Byte>88</Byte>
</Before>
<Actual>
<Byte>41</Byte>
<Byte>C6</Byte>
<Byte>04</Byte>
<Byte>24</Byte>
<Byte>01</Byte>
</Actual>
<After>
<Byte>41</Byte>
<Byte>8B</Byte>
<Byte>C7</Byte>
<Byte>E9</Byte>
<Byte>7B</Byte>
</After>
</CodeEntry>
</CheatCodes>
<UserdefinedSymbols/>
<LuaScript>function tryAttach(id)
if id == nil or id == 0 then return nil end
local openedProcessId = getOpenedProcessID()
return openedProcessId == id or openProcess(id)
end
processName = "Dishonored2_x64.exe.unpacked.exe"
if attachTimer == nil then
attachTimer = createTimer(getMainForm())
end
attachTimer.Interval = 10000
attachTimer.OnTimer =
function ()
if getOpenedProcessID() ~= 0 and readBytes(processName, 1) ~= nil then
return
end
--print(("[%d] Trying to attach"):format(getTickCount()))
tryAttach(
getProcessIDFromProcessName(processName))
end
attachTimer.enabled = true
</LuaScript>
</CheatTable>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment