Загрузка данных
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
<CheatEntries>
<CheatEntry>
<ID>17559</ID>
<Description>"Что бы начать использовать читы нужно включить данный скрипт!"</Description>
<Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
<Color>00FFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(func_Caller,$process,48 81 EC 68 02 00 00 48 8B 05 ?? ?? ?? ?? 48 ?? ?? 48 89 84 24 50 02 00 00 48 8D 54 24 50 41 B8 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? ?? 48 ?? ?? 24) // should be unique
registersymbol(func_Caller)
alloc(stringArg,0x100,$process)
registersymbol(stringArg)
stringArg:
db '__specialcamera_cancel',0
//code from here to '[DISABLE]' will be used to enable the cheat
{$lua}
function autodisable(sender)
hud_ac = getAddressList().getMemoryRecordByID(17561)
hud_ac.Active=false
hud_deac = getAddressList().getMemoryRecordByID(17560)
hud_deac.Active=false
end
if t == nil then
t=createTimer(nil)
t.OnTimer=autodisable
t.Interval=1000
t.Enabled=true
end
{$asm}
[DISABLE]
dealloc(stringArg,0x100,$process)
unregistersymbol(stringArg)
//code from here till the end of the code will be used to disable the cheat
{$lua}
t.Destroy()
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17560</ID>
<Description>"Деактивировать HUD (отключить головной дисплей / интерфейс)"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
alloc( CheatHandlerThread_HUD_deact, 0x1000, $process )
registersymbol( CheatHandlerThread_HUD_deact )
CreateThread( CheatHandlerThread_HUD_deact )
label(deact_HUD)
label(temp)
label(callDone)
aobscanmodule(hud_deac_call_1,$process,57 48 83 EC 60 48 C7 44 24 20 FE FF FF FF 49 89 5B 08 ?? ?? 48 B8 03 FF FF FF FF 00 00 00 49 89 43 C0 ?? FF ) // continued by 49 89 7B C8 49 89 7B D0 49 89 7B D8 49 89 7B E0 49 89 7B E8
aobscanmodule(hud_deac_call_2,$process,53 48 83 EC 60 48 C7 44 24 20 FE FF FF FF 45 ?? C0 ?? ?? 48 8D 4C 24 78 E8 ?? ?? ?? 00 )
registersymbol( hud_deac_call_1 )
registersymbol( hud_deac_call_2 )
CheatHandlerThread_HUD_deact:
sub rsp,100
lea rdx,[deact_HUD]
mov [temp],rdx
lea rdx,[temp]
mov rcx,5AA2CA77
call hud_deac_call_1-3 //141D04E70 steam
mov rcx,hud_deac_call_2
cmp [rcx-1],40 // is GOG ver?!
jne @f
mov rcx,DA9ACC2F
call hud_deac_call_2-1 //141B74880 steam
jmp callDone
@@:
mov rcx,DA9ACC2F
call hud_deac_call_2
callDone:
add rsp,100
ret
deact_HUD:
db 'deactivate_hud',0
temp:
dd 00
[DISABLE]
dealloc( CheatHandlerThread_HUD_deact )
unregistersymbol( CheatHandlerThread_HUD_deact )
unregistersymbol( hud_deac_call_1 )
unregistersymbol( hud_deac_call_2 )
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17561</ID>
<Description>"Активировать HUD (включить головной дисплей / интерфейс)"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
alloc( CheatHandlerThread_HUD_act, 0x1000, $process )
registersymbol( CheatHandlerThread_HUD_act )
CreateThread( CheatHandlerThread_HUD_act )
aobscanmodule(hud_act,$process,53 48 83 EC 60 48 C7 44 24 20 FE FF FF FF C6 41)
label(callDone)
registersymbol( hud_act )
CheatHandlerThread_HUD_act:
sub rsp,100
mov rcx,hud_act
cmp byte ptr [rcx-1],40 // is GOG?
jne @f
mov rcx,[14171DB68] // GOG
call hud_act-1
jmp callDone
@@:
mov rcx [1417FCEE8]
call hud_act //141E57080 steam
callDone:
add rsp,100
ret
[DISABLE]
dealloc( CheatHandlerThread_HUD_act )
unregistersymbol( CheatHandlerThread_HUD_act )
unregistersymbol( hud_act )
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17603</ID>
<Description>"___________________________________________________________________"</Description>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<Address/>
</CheatEntry>
<CheatEntry>
<ID>17568</ID>
<Description>"НАЖМИ (тильда ~) что бы выполнить действие строкового аргумента"</Description>
<Options moManualExpandCollapse="1"/>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
alloc( CheatHandlerThread_HUD_act, 0x1000, $process )
registersymbol( CheatHandlerThread_HUD_act )
CreateThread( CheatHandlerThread_HUD_act )
CheatHandlerThread_HUD_act:
{$lua}
func_caller = getAddressList().getMemoryRecordByID(17568)
local timer = createTimer()
timer.Interval = 500 -- 1000 milliseconds per second
timer.OnTimer = function(theTimerCallingThisFunction)
func_caller.Active=false
timer.destroy() -- destroy the timer so it doesn't keep running
end
{$asm}
push rbp
mov rbp,rsp
sub rsp,220
and rsp,-10 // aligning the stack with the next lowest 16-byte boundary
//mov qword ptr [rsp+30],FFFFFFFFFFFFFFFE
lea rcx,[stringArg]
//call 141B74930
call func_Caller
mov rsp,rbp
pop rbp
ret
[DISABLE]
dealloc( CheatHandlerThread_HUD_act )
unregistersymbol( CheatHandlerThread_HUD_act )
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>192</Key>
</Keys>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
<DeactivateSound>Deactivate</DeactivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17605</ID>
<Description>"ИНСТРУКЦИЯ Как использовать Строковый аргумент и клавишу Тильда."</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "Сначала нужно посмотреть список горячих клавиш\r\n1.Установите выделение(курсор) на поле Строковый аргумент\r\n2.Нажмите Ctrl+H или второй клавишей мыши и изменить горячие клавиши\r\n3.Ничего не меняя изучите и запомните список нужных вам счетаний\r\n4.вернёмся к использованию, нажмите горячуу клавишу что бы выбрать модификатор\r\n5.после того как он выбрался находясь в игре нажмите Тильду что бы применить"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17569</ID>
<Description>"Строковый аргумент. (посмотрите список горячих клавиш для выбора модификатора)"</Description>
<DropDownList DescriptionOnly="1" DisplayValueAsItem="1">__specialcamera_input_disable:__specialcamera_input_disable
__specialcamera_input_enable:__specialcamera_input_enable
__specialcamera_set_transform:__specialcamera_set_transform
__specialcamera_debug_east:__specialcamera_debug_east
__specialcamera_debug_south:__specialcamera_debug_south
__specialcamera_debug:__specialcamera_debug
__specialcamera_soakfly:__specialcamera_soakfly
__specialcamera_movie_reset:__specialcamera_movie_reset
__specialcamera_movie:__specialcamera_movie
__specialcamera_cancel:__specialcamera_cancel
__specialcamera_freefly:__specialcamera_freefly
toggle_debug_gfx:toggle_debug_gfx
__TeleportToCamera:__TeleportToCamera
</DropDownList>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>59</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>stringArg</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>49</Key>
</Keys>
<Value>make_signature_invulnerable</Value>
<Description>Сделать_сигнатуру_неуязвимой.</Description>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>56</Key>
</Keys>
<Value>sandstorm.stop</Value>
<Description>песчаная_буря.остановить</Description>
<ID>1</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>57</Key>
</Keys>
<Value>storm.trigger</Value>
<Description>буря.запустить</Description>
<ID>2</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>51</Key>
</Keys>
<Value>set_time_day</Value>
<Description>установить_время_день</Description>
<ID>3</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>52</Key>
</Keys>
<Value>set_time_night</Value>
<Description>установить_время_ночь</Description>
<ID>4</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>53</Key>
</Keys>
<Value>daycycle.setweather.clear</Value>
<Description>дневной_цикл.установить_погоду.ясно</Description>
<ID>5</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>50</Key>
</Keys>
<Value>ply.health.refill</Value>
<Description>игрок.здоровье.восполнить</Description>
<ID>6</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>55</Key>
</Keys>
<Value>dbg.give.enc_scrap.huge</Value>
<Description>отладка.дать.enc_лом.огромный</Description>
<ID>7</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>17</Key>
<Key>16</Key>
<Key>54</Key>
</Keys>
<Value>give_water</Value>
<Description>дать_воду</Description>
<ID>8</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>105</Key>
</Keys>
<Value>debug_kill_everyone</Value>
<Description>отладка_убить_всех</Description>
<ID>9</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>104</Key>
</Keys>
<Value>ply.aientity.enable</Value>
<Description>игрок.ии_сущность.включить</Description>
<ID>10</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>103</Key>
</Keys>
<Value>ply.aientity.disable</Value>
<Description>игрок.ии_сущность.выключить</Description>
<ID>11</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>101</Key>
</Keys>
<Value>ply.freeze.health.on</Value>
<Description>игрок.заморозить.здоровье.вкл</Description>
<ID>12</ID>
<ActivateSound>Activate</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>102</Key>
</Keys>
<Value>ply.freeze.health.off</Value>
<Description>игрок.заморозить.здоровье.выкл</Description>
<ID>13</ID>
<ActivateSound>Deactivate</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
</Keys>
<Value>toggle_pause_game</Value>
<Description>переключить_паузу_игры</Description>
<ID>14</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>97</Key>
</Keys>
<Value>death_run_debug_complete</Value>
<Description>отладка_смертельного_забега_завершить</Description>
<ID>15</ID>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>98</Key>
</Keys>
<Value>debug_spawn_veh_only_buzzards_dropkicker.perform</Value>
<Description>отладка_спавнить_только_машины_стервятников_дропкикер.выполнить</Description>
<ID>16</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17601</ID>
<Description>"----------------------------------------------------"</Description>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<Address/>
</CheatEntry>
<CheatEntry>
<ID>17592</ID>
<Description>"Режимы Бога и Иисуса для игрока."</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2022-01-23
Author : Reversr69
This script does blah blah blah
}
[ENABLE]
//GetInventoryItemCount
//sub_1420C9730
aobscanmodule(eng_jes_god_rewrt,$process,41 88 83 E9 00 00 00 48 83 C4 20 5B C3) // only for GOG ver
alloc(newmem2,$1000,eng_jes_god_rewrt)
aobscanmodule(eng_jes_god,$process,48 ?? ?? FF 50 10 84 C0 74 ?? 48 83 C7 F8 74 ?? 48 8B 06 48 89 44 24 38 48 8B 46 08 48 89 44 24 40 48 8D 4C 24 38 E8 ?? ?? ?? 00 48 85 C0 74 0F 80 38 00 74 0A 48 ?? ?? E8 ?? ?? ?? 00 EB 02 ?? C0 89 44 24 70 48 ?? ?? E8 ?? ?? ?? FF 48 ?? ?? 48 8D 54 24 70 E8 ?? ?? ?? FF 66 0F 6E C8 0F 5B C9 EB) // should be unique
alloc(newmem,$1000,eng_jes_god)
alloc(eng_jes_god_rewrt_orig,1024)
eng_jes_god_rewrt_orig:
readmem(eng_jes_god_rewrt,10)
label(code)
label(return)
label(eng_GM_bl)
label(eng_jesus_bl)
label(return2)
newmem:
mov r14,rax
lea rax,[rdi-8]
test rax, rax
jz code
cmp [rax+024],0
je code
cmp [rax+0f0],0
je code
cmp byte ptr [eng_jesus_bl],1
jne @f
mov [rax+0EA], 01 //jesus
jmp code
@@:
cmp byte ptr [eng_GM_bl],1
jne @f
mov [rax+0E9], 01 //god
jmp code
@@:
mov [rax+0Ea], 0
mov [rax+0E9], 0
code:
mov rax,r14
mov rcx,rdi
call qword ptr [rax+10]
jmp return
eng_GM_bl:
db 00
eng_jesus_bl:
db 00
eng_jes_god:
jmp newmem
nop
return:
newmem2:
cmp [r11+024],0
je @f
cmp [r11+0f0],0
je @f
or al,byte ptr [eng_GM_bl]
@@:
mov [r11+000000E9],al
jmp return2
eng_jes_god_rewrt:
jmp newmem2
nop 2
return2:
registersymbol(eng_jes_god_rewrt_orig)
registersymbol(eng_jes_god)
registersymbol(eng_GM_bl)
registersymbol(eng_jesus_bl)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
eng_jes_god_rewrt:
readmem(eng_jes_god_rewrt_orig,10)
eng_jes_god:
db 48 89 F9 FF 50 10
unregistersymbol(eng_jes_god_rewrt_orig)
unregistersymbol(eng_jes_god)
unregistersymbol(eng_GM_bl)
unregistersymbol(eng_jesus_bl)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+20C97B8
MadMax.exe+20C9788: 8B 15 42 BA 72 FF - mov edx,[MadMax.exe+17F51D0]
MadMax.exe+20C978E: F6 C2 01 - test dl,01
MadMax.exe+20C9791: 75 1B - jne MadMax.exe+20C97AE
MadMax.exe+20C9793: 83 CA 01 - or edx,01
MadMax.exe+20C9796: 89 15 34 BA 72 FF - mov [MadMax.exe+17F51D0],edx
MadMax.exe+20C979C: 48 8D 0D 15 7C 16 FF - lea rcx,[MadMax.exe+12313B8]
MadMax.exe+20C97A3: E8 88 3A EF 00 - call MadMax.exe+2FBD230
MadMax.exe+20C97A8: 89 05 1E BA 72 FF - mov [MadMax.exe+17F51CC],eax
MadMax.exe+20C97AE: 48 8B 07 - mov rax,[rdi]
MadMax.exe+20C97B1: 48 8D 15 14 BA 72 FF - lea rdx,[MadMax.exe+17F51CC]
// ---------- INJECTING HERE ----------
MadMax.exe+20C97B8: 48 89 F9 - mov rcx,rdi
// ---------- DONE INJECTING ----------
MadMax.exe+20C97BB: FF 50 10 - call qword ptr [rax+10]
MadMax.exe+20C97BE: 84 C0 - test al,al
MadMax.exe+20C97C0: 74 5A - je MadMax.exe+20C981C
MadMax.exe+20C97C2: 48 83 C7 F8 - add rdi,-08
MadMax.exe+20C97C6: 74 54 - je MadMax.exe+20C981C
MadMax.exe+20C97C8: 48 8B 06 - mov rax,[rsi]
MadMax.exe+20C97CB: 48 89 44 24 38 - mov [rsp+38],rax
MadMax.exe+20C97D0: 48 8B 46 08 - mov rax,[rsi+08]
MadMax.exe+20C97D4: 48 89 44 24 40 - mov [rsp+40],rax
MadMax.exe+20C97D9: 48 8D 4C 24 38 - lea rcx,[rsp+38]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17593</ID>
<Description>"Включить режим Иисуса."</Description>
<Options moManualExpandCollapse="1"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>eng_jesus_bl</Address>
<CheatEntries>
<CheatEntry>
<ID>17596</ID>
<Description>"Справка"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "Здоровье будет уменьшаться, но ты не умрёшь.\r\nЛучше всего для реалистичного опыта"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17594</ID>
<Description>"Включить режим Бога."</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>eng_GM_bl</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>2</ID>
<Description>"Боеприпасы."</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-22
Author : (futureX)
}
[ENABLE]
aobscanmodule(ammo,$process,0F B7 40 04 48 8B 6C 24 38) // should be unique
alloc(newmem,$1000,ammo)
label(code)
label(return)
newmem:
mov word ptr [rax+04],9
code:
movzx eax,word ptr [rax+04]
mov rbp,[rsp+38]
jmp return
ammo:
jmp newmem
nop 4
return:
registersymbol(ammo)
[DISABLE]
ammo:
db 0F B7 40 04 48 8B 6C 24 38
unregistersymbol(ammo)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+20003AE
MadMax.exe+200039A: 70 4C - jo MadMax.exe+20003E8
MadMax.exe+200039C: 01 C0 - add eax,eax
MadMax.exe+200039E: EB 80 - jmp MadMax.exe+2000320
MadMax.exe+20003A0: B5 61 - mov ch,61
MadMax.exe+20003A2: 3A 0B - cmp cl,[rbx]
MadMax.exe+20003A4: FB - sti
MadMax.exe+20003A5: F1 - db F1
MadMax.exe+20003A6: 34 3A - xor al,3A
MadMax.exe+20003A8: A0 69 F2 C4 D9 A7 - db A0 69 F2 C4 D9 A7
MadMax.exe+20003AE: 0F B7 40 04 - movzx eax,word ptr [rax+04]
// ---------- INJECTING HERE ----------
MadMax.exe+20003B2: 48 8B 6C 24 38 - mov rbp,[rsp+38]
// ---------- DONE INJECTING ----------
MadMax.exe+20003B7: 48 8B 74 24 48 - mov rsi,[rsp+48]
MadMax.exe+20003BC: 48 83 C4 20 - add rsp,20
MadMax.exe+20003C0: 5F - pop rdi
MadMax.exe+20003C1: C3 - ret
MadMax.exe+20003C2: CD CC - int -34
MadMax.exe+20003C4: CC - int 3
MadMax.exe+20003C5: CC - int 3
MadMax.exe+20003C6: CC - int 3
MadMax.exe+20003C7: 66 0F 1F 84 00 00 00 00 00 - nop word ptr [rax+rax+00000000]
MadMax.exe+20003D0: 57 - push rdi
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17050</ID>
<Description>"Мгновенное восстановление кулдауна гарпуна."</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-22
Author : (iNvIcTUs oRCuS)
}
[ENABLE]
aobscanmodule(coolDown,$process,8B 81 F8 00 00 00 89 81 FC 00 00 00 41) // should be unique
coolDown:
xor eax,eax
nop
nop
nop
nop
registersymbol(coolDown)
[DISABLE]
coolDown:
db 8B 81 F8 00 00 00
unregistersymbol(coolDown)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1EED1B7
MadMax.exe+1EED183: 3C E0 - cmp al,-20
MadMax.exe+1EED185: 55 - push rbp
MadMax.exe+1EED186: B2 F3 - mov dl,-0D
MadMax.exe+1EED188: 0F 10 8A C8 01 00 00 - movups xmm1,[rdx+000001C8]
MadMax.exe+1EED18F: F3 0F 10 82 CC 01 00 00 - movss xmm0,[rdx+000001CC]
MadMax.exe+1EED197: 0F B6 82 CA 02 00 00 - movzx eax,byte ptr [rdx+000002CA]
MadMax.exe+1EED19E: 88 81 15 01 00 00 - mov [rcx+00000115],al
MadMax.exe+1EED1A4: F3 0F 59 C8 - mulss xmm1,xmm0
MadMax.exe+1EED1A8: F3 0F 11 8A F8 00 00 00 - movss [rdx+000000F8],xmm1
MadMax.exe+1EED1B0: 48 8B 89 08 01 00 00 - mov rcx,[rcx+00000108]
// ---------- INJECTING HERE ----------
MadMax.exe+1EED1B7: 8B 81 F8 00 00 00 - mov eax,[rcx+000000F8]
// ---------- DONE INJECTING ----------
MadMax.exe+1EED1BD: 89 81 FC 00 00 00 - mov [rcx+000000FC],eax
MadMax.exe+1EED1C3: 41 C6 80 14 01 00 00 00 - mov byte ptr [r8+00000114],00
MadMax.exe+1EED1CB: C3 - ret
MadMax.exe+1EED1CC: CC - int 3
MadMax.exe+1EED1CD: CC - int 3
MadMax.exe+1EED1CE: CC - int 3
MadMax.exe+1EED1CF: CC - int 3
MadMax.exe+1EED1D0: CC - int 3
MadMax.exe+1EED1D1: CC - int 3
MadMax.exe+1EED1D2: CC - int 3
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17396</ID>
<Description>"Разблокировать все улучшения авто."</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-02-08
Author : Shetal
This script does blah blah blah
}
[ENABLE]
alloc(upgUpd_org,100)
alloc(unlockUpg_org,100)
aobscanmodule(upgUpd,$process,48 85 C9 74 * 38 xx xx xx xx xx 0f 84 * * * * 49)
aobscanmodule(unlockUpg,$process,0F B6 81 xx xx xx xx 88 xx xx xx xx xx xx 8b 41 20 48) // should be unique
alloc(newmem,$100,unlockUpg)
label(code)
label(return)
upgUpd_org:
readmem(upgUpd,30)
unlockUpg_org:
readmem(unlockUpg,30)
newmem:
push rcx
push rdx
push rsi
push rdi
cmp byte ptr [rcx+0000008b],19
jne code
cmp byte ptr [rcx+00000084],2 //jmp if "selected"
je code
mov rdx,rcx
{$try}
cmp byte ptr [clear_All_UPGs],1
jne @f
mov byte ptr [rcx+00000084],#255
jmp code
@@:
cmp byte ptr [unlockAll_UPG_Flag],1
jne @f
mov byte ptr [rcx+00000084],1
@@:
cmp byte ptr [unlock_all_V8],1
jne @f
mov rax,[rcx+28]
push rax
shr rax,20 //checking if rax has a wierd null value
test rax,rax
pop rax
jnz @f
cmp dword ptr [rax],'upg.'
jne @f
cmp dword ptr [rax+4],'v8_a'
jne @f
mov byte ptr [rcx+00000084],1
@@:
cmp byte ptr [unlock_all_V6],1
jne @f
mov rax,[rcx+28]
push rax
shr rax,20 //checking if rax has a wierd null value
test rax,rax
pop rax
jnz @f
cmp dword ptr [rax],'upg.'
jne @f
cmp dword ptr [rax+4],'acce'
jne @f
mov byte ptr [rcx+00000084],1
@@:
mov rax, dword ptr [rcx+28]
cmp byte ptr [unlock_First_V8],1
jne @f
mov rcx,22
lea rsi, [rax] //v8
lea rdi, [first_V8]
push rsi
shr rsi,20 //checking if rsi has a wierd null value
test rsi,rsi
pop rsi
jnz code
rep cmpsb
jne code
mov byte ptr [rdx+00000084],1
{$except}
code:
pop rdi
pop rsi
pop rdx
pop rcx
movzx eax,byte ptr [rcx+00000084]
jmp return
unlock_First_V8:
db 00
unlock_all_V8:
db 00
unlock_all_V6:
db 00
unlockAll_UPG_Flag:
db 00
clear_All_UPGs:
db 00
first_V8:
db 'upg.v8_acceleration.activate.p1.l0',0
upgUpd+b:
db 90 90 90 90 90 90
unlockUpg:
jmp newmem
nop 2
return:
registersymbol(upgUpd_org)
registersymbol(unlockUpg_org)
registersymbol(upgUpd)
registersymbol(unlockUpg)
registersymbol(unlock_First_V8)
registersymbol(unlock_all_V8)
registersymbol(unlock_all_V6)
registersymbol(unlockAll_UPG_Flag)
registersymbol(clear_All_UPGs)
[DISABLE]
upgUpd:
//db 0f 84 ae 00 00 00 49
readmem(upgUpd_org,20)
unlockUpg:
//db 0F B6 81 84 00 00 00
readmem(unlockUpg_org,20)
unregistersymbol(upgUpd_org)
unregistersymbol(unlockUpg_org)
unregistersymbol(upgUpd)
unregistersymbol(unlockUpg)
unregistersymbol(unlock_First_V8)
unregistersymbol(unlock_all_V8)
unregistersymbol(unlock_all_V6)
unregistersymbol(unlockAll_UPG_Flag)
unregistersymbol(clear_All_UPGs)
dealloc(newmem)
dealloc(upgUpd_org)
dealloc(unlockUpg_org)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1E6045F
MadMax.exe+1E60444: 48 C1 FA 03 - sar rdx,03
MadMax.exe+1E60448: 48 89 D0 - mov rax,rdx
MadMax.exe+1E6044B: 48 C1 E8 3F - shr rax,3F
MadMax.exe+1E6044F: 48 01 C2 - add rdx,rax
MadMax.exe+1E60452: E9 2B FE FF FF - jmp MadMax.exe+1E60282
MadMax.exe+1E60457: EE - out dx,al
MadMax.exe+1E60458: 1A 37 - sbb dh,byte ptr [rdi]
MadMax.exe+1E6045A: 55 - push rbp
MadMax.exe+1E6045B: 04 70 - add al,70
MadMax.exe+1E6045D: C5 F5 -
// ---------- INJECTING HERE ----------
MadMax.exe+1E6045F: 0F B6 81 84 00 00 00 - movzx eax,byte ptr [rcx+00000084]
// ---------- DONE INJECTING ----------
MadMax.exe+1E60466: 88 84 EB 3B 13 00 00 - mov [rbx+rbp*8+0000133B],al
MadMax.exe+1E6046D: 8B 41 20 - mov eax,[rcx+20]
MadMax.exe+1E60470: 48 89 CA - mov rdx,rcx
MadMax.exe+1E60473: 89 84 EB 34 13 00 00 - mov [rbx+rbp*8+00001334],eax
MadMax.exe+1E6047A: 0F B6 81 8B 00 00 00 - movzx eax,byte ptr [rcx+0000008B]
MadMax.exe+1E60481: 88 84 EB 40 13 00 00 - mov [rbx+rbp*8+00001340],al
MadMax.exe+1E60488: 0F B6 81 8C 00 00 00 - movzx eax,byte ptr [rcx+0000008C]
MadMax.exe+1E6048F: 88 84 EB 3F 13 00 00 - mov [rbx+rbp*8+0000133F],al
MadMax.exe+1E60496: 0F B6 81 89 00 00 00 - movzx eax,byte ptr [rcx+00000089]
MadMax.exe+1E6049D: 88 84 EB 3C 13 00 00 - mov [rbx+rbp*8+0000133C],al
}
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_GOG.exe"+29666B
"MadMax_GOG.exe"+29664A: 04 03 - add al,03
"MadMax_GOG.exe"+29664C: EB 24 - jmp MadMax_GOG.exe+296672
"MadMax_GOG.exe"+29664E: 48 2B 4A 38 - sub rcx,[rdx+38]
"MadMax_GOG.exe"+296652: 49 8B C4 - mov rax,r12
"MadMax_GOG.exe"+296655: 48 F7 E9 - imul rcx
"MadMax_GOG.exe"+296658: 48 C1 FA 03 - sar rdx,03
"MadMax_GOG.exe"+29665C: 48 8B C2 - mov rax,rdx
"MadMax_GOG.exe"+29665F: 48 C1 E8 3F - shr rax,3F
"MadMax_GOG.exe"+296663: 48 03 D0 - add rdx,rax
"MadMax_GOG.exe"+296666: E9 20 FE FF FF - jmp MadMax_GOG.exe+29648B
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+29666B: 0F B6 81 84 00 00 00 - movzx eax,byte ptr [rcx+00000084]
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+296672: 88 84 EB 3B 13 00 00 - mov [rbx+rbp*8+0000133B],al
"MadMax_GOG.exe"+296679: 8B 41 20 - mov eax,[rcx+20]
"MadMax_GOG.exe"+29667C: 48 8B D1 - mov rdx,rcx
"MadMax_GOG.exe"+29667F: 89 84 EB 34 13 00 00 - mov [rbx+rbp*8+00001334],eax
"MadMax_GOG.exe"+296686: 0F B6 81 8B 00 00 00 - movzx eax,byte ptr [rcx+0000008B]
"MadMax_GOG.exe"+29668D: 88 84 EB 40 13 00 00 - mov [rbx+rbp*8+00001340],al
"MadMax_GOG.exe"+296694: 0F B6 81 8C 00 00 00 - movzx eax,byte ptr [rcx+0000008C]
"MadMax_GOG.exe"+29669B: 88 84 EB 3F 13 00 00 - mov [rbx+rbp*8+0000133F],al
"MadMax_GOG.exe"+2966A2: 0F B6 81 89 00 00 00 - movzx eax,byte ptr [rcx+00000089]
"MadMax_GOG.exe"+2966A9: 88 84 EB 3C 13 00 00 - mov [rbx+rbp*8+0000133C],al
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17437</ID>
<Description>"Разблокировать только первый V8."</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>unlock_First_V8</Address>
</CheatEntry>
<CheatEntry>
<ID>17439</ID>
<Description>"Разблокировать все улучшения двигателя V6."</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>unlock_all_V6</Address>
</CheatEntry>
<CheatEntry>
<ID>17438</ID>
<Description>"Разблокировать все улучшения двигателя V8."</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>unlock_all_V8</Address>
</CheatEntry>
<CheatEntry>
<ID>17440</ID>
<Description>"Разблокировать все улучшения (всё в гараже)."</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>unlockAll_UPG_Flag</Address>
</CheatEntry>
<CheatEntry>
<ID>17441</ID>
<Description>"Очистить все улучшения (на случай багов)."</Description>
<Options moManualExpandCollapse="1"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>clear_All_UPGs</Address>
<CheatEntries>
<CheatEntry>
<ID>17398</ID>
<Description>"Справка"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "Когда застрял в ситуации, где нужно выбрать улучшение, чтобы начать миссию,\r\nа его выбор ничего не даёт: сначала отключи чит «разблокировка»,\r\nзатем включи этот чит, чтобы попасть в меню улучшений и купить улучшение.\r\nПоявится бесконечное окно с сообщением — чтобы выйти из него, нажми «ОК»,\r\nа затем сразу нажми кнопку «U».\r\nТеперь снова ВКЛЮЧИ чит на разблокировку и заново выбери улучшения"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17435</ID>
<Description>"Пропустить вступительный ролик."</Description>
<Color>FFFF00</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-07-14
Author : Shetal
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(binkSkip,$process,FF 15 ?? ?? ?? ?? 4c 8d 44 24 30 45 ?? c9) // should be unique
alloc(newmem,$200,binkSkip)
alloc(binkSkip_org,10)
label(code)
label(return)
label(binkVideoName)
label(CurBinkVid)
binkSkip_org:
readmem(binkSkip,10)
newmem:
mov [CurBinkVid],rcx
//mov r8,[binkSkip]
call bink2w64.BinkOpen
push rax
push rcx
push rdx
push rsi
push rdi
push r8
push r9
push r10
push r11
mov r8,rax //getting the structure
mov rcx,#23
mov rsi, [CurBinkVid] // Current bink Video Name which is going to open
lea rdi, [binkVideoName] // is it the intro movie?
rep cmpsb
//jne @f // you can erase this jump to skip all cutscenes
mov [r8+8], 1 // setting total frames within BINK structure
@@:
pop r11
pop r10
pop r9
pop r8
pop rdi
pop rsi
pop rdx
pop rcx
pop rax
code:
//call qword ptr [1432C3428]
jmp return
binkVideoName:
db 'videos/wb_ava_logo.bk2c',0
CurBinkVid:
dq 00
binkSkip:
jmp newmem
nop
return:
registersymbol(binkSkip)
registersymbol(binkSkip_org)
[DISABLE]
binkSkip:
readmem(binkSkip_org,6)
//db FF 15 1C 91 0A 01
//reassemble(binkSkip)
//readmem(binkSkip_org,6)
unregistersymbol(binkSkip)
dealloc(newmem)
dealloc(binkSkip_org)
{
// ORIGINAL CODE - INJECTION POINT: 14221A306
14221A2D1: C7 44 24 48 04 00 00 00 - mov [rsp+48],00000004
14221A2D9: C7 44 24 4C 05 00 00 00 - mov [rsp+4C],00000005
14221A2E1: 8D 89 F7 5D 6F 3C - lea ecx,[rcx+3C6F5DF7]
14221A2E7: FF 15 CB 90 0A 01 - call qword ptr [1432C33B8]
14221A2ED: 48 83 7B 58 10 - cmp qword ptr [rbx+58],10
14221A2F2: 48 8D 4B 40 - lea rcx,[rbx+40]
14221A2F6: 72 03 - jb 14221A2FB
14221A2F8: 48 8B 09 - mov rcx,[rcx]
14221A2FB: BA 0F 05 46 C3 - mov edx,C346050F
14221A300: 8D 92 F1 3E BA 3F - lea edx,[rdx+3FBA3EF1]
// ---------- INJECTING HERE ----------
14221A306: FF 15 1C 91 0A 01 - call qword ptr [1432C3428]
// ---------- DONE INJECTING ----------
14221A30C: 4C 8D 44 24 30 - lea r8,[rsp+30]
14221A311: 45 31 C9 - xor r9d,r9d
14221A314: 31 D2 - xor edx,edx
14221A316: 48 89 C1 - mov rcx,rax
14221A319: C7 44 24 30 00 00 00 00 - mov [rsp+30],00000000
14221A321: 48 89 43 38 - mov [rbx+38],rax
14221A325: C7 44 24 34 01 00 00 00 - mov [rsp+34],00000001
14221A32D: C7 44 24 20 02 00 00 00 - mov [rsp+20],00000002
14221A335: FF 15 F5 90 0A 01 - call qword ptr [1432C3430]
14221A33B: 48 8B 4B 38 - mov rcx,[rbx+38]
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17602</ID>
<Description>"--------------------------------------------------"</Description>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<Address/>
</CheatEntry>
<CheatEntry>
<ID>17571</ID>
<Description>"Не получать урон от столкновений со стенами и падений"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2022-01-22
Author : Shetal
This script does blah blah blah
}
[ENABLE]
aobscanmodule(envir_dmg,MadMax.exe,0F 28 C8 E8 E1 CA EA 00) // should be unique
alloc(newmem,$1000,envir_dmg)
label(code)
label(return)
newmem:
xorps xmm0,xmm0
code:
movaps xmm1,xmm0
call MadMax.exe+2FB6500
jmp return
envir_dmg:
jmp newmem
nop 3
return:
registersymbol(envir_dmg)
[DISABLE]
envir_dmg:
db 0F 28 C8 E8 E1 CA EA 00
unregistersymbol(envir_dmg)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+2109A17
MadMax.exe+21099F6: CC - int 3
MadMax.exe+21099F7: CC - int 3
MadMax.exe+21099F8: CC - int 3
MadMax.exe+21099F9: 0F 1F 80 00 00 00 00 - nop dword ptr [rax+00000000]
MadMax.exe+2109A00: 53 - push rbx
MadMax.exe+2109A01: 48 83 EC 20 - sub rsp,20
MadMax.exe+2109A05: 48 89 CB - mov rbx,rcx
MadMax.exe+2109A08: 48 8B 0D 39 B9 6E FF - mov rcx,[MadMax.exe+17F5348]
MadMax.exe+2109A0F: E8 FC 63 09 00 - call MadMax.exe+219FE10
MadMax.exe+2109A14: 48 89 D9 - mov rcx,rbx
// ---------- INJECTING HERE ----------
MadMax.exe+2109A17: 0F 28 C8 - movaps xmm1,xmm0
// ---------- DONE INJECTING ----------
MadMax.exe+2109A1A: E8 E1 CA EA 00 - call MadMax.exe+2FB6500
MadMax.exe+2109A1F: 48 89 D8 - mov rax,rbx
MadMax.exe+2109A22: 48 83 C4 20 - add rsp,20
MadMax.exe+2109A26: 5B - pop rbx
MadMax.exe+2109A27: C3 - ret
MadMax.exe+2109A28: CC - int 3
MadMax.exe+2109A29: CC - int 3
MadMax.exe+2109A2A: CC - int 3
MadMax.exe+2109A2B: CC - int 3
MadMax.exe+2109A2C: CC - int 3
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17587</ID>
<Description>"Режим бога для любой машины, к которой игрок приближается"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2022-01-23
Author : Reversr69
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
//IsLockedForPlayer
//14214461C
aobscanmodule(IsLockedForPlayer_hook_veh_gm,$process,48 ?? ?? FF 50 10 84 C0 74 ?? 48 8D 47 F8 48 85 C0 74 ?? 0F B6 90 F8 05 00 00 EB)
alloc(newmem,$1000,IsLockedForPlayer_hook_veh_gm)
label(code)
label(return)
newmem:
lea rax,[rdi-8]
test rax, rax
jz @f
mov [rax+0E9], 01
mov rax,[rdi] //original code
//top speed rax+1d0
code:
mov rcx,rdi
call qword ptr [rax+10]
jmp return
IsLockedForPlayer_hook_veh_gm:
jmp newmem
nop
return:
registersymbol(IsLockedForPlayer_hook_veh_gm)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
IsLockedForPlayer_hook_veh_gm:
db 48 89 F9 FF 50 10
unregistersymbol(IsLockedForPlayer_hook_veh_gm)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+214461C
MadMax.exe+21445EC: 8B 15 E6 0B 6B FF - mov edx,[MadMax.exe+17F51D8]
MadMax.exe+21445F2: F6 C2 01 - test dl,01
MadMax.exe+21445F5: 75 1B - jne MadMax.exe+2144612
MadMax.exe+21445F7: 83 CA 01 - or edx,01
MadMax.exe+21445FA: 89 15 D8 0B 6B FF - mov [MadMax.exe+17F51D8],edx
MadMax.exe+2144600: 48 8D 0D F1 CD 0E FF - lea rcx,[MadMax.exe+12313F8]
MadMax.exe+2144607: E8 24 8C E7 00 - call MadMax.exe+2FBD230
MadMax.exe+214460C: 89 05 C2 0B 6B FF - mov [MadMax.exe+17F51D4],eax
MadMax.exe+2144612: 48 8B 07 - mov rax,[rdi]
MadMax.exe+2144615: 48 8D 15 B8 0B 6B FF - lea rdx,[MadMax.exe+17F51D4]
// ---------- INJECTING HERE ----------
MadMax.exe+214461C: 48 89 F9 - mov rcx,rdi
// ---------- DONE INJECTING ----------
MadMax.exe+214461F: FF 50 10 - call qword ptr [rax+10]
MadMax.exe+2144622: 84 C0 - test al,al
MadMax.exe+2144624: 74 13 - je MadMax.exe+2144639
MadMax.exe+2144626: 48 8D 47 F8 - lea rax,[rdi-08]
MadMax.exe+214462A: 48 85 C0 - test rax,rax
MadMax.exe+214462D: 74 0A - je MadMax.exe+2144639
MadMax.exe+214462F: 0F B6 90 F8 05 00 00 - movzx edx,byte ptr [rax+000005F8]
MadMax.exe+2144636: EB 03 - jmp MadMax.exe+214463B
MadMax.exe+2144638: 00 31 - add [rcx],dh
MadMax.exe+214463A: D2 48 89 - ror byte ptr [rax-77],cl
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17589</ID>
<Description>"Отключить режим бога для машин, которыми управляют враги."</Description>
<Color>FFFFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2022-01-23
Author : Reversr69
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
//VehicleHasEnemyDriver
//141EC9970 steam
aobscanmodule(god_off_enem_drv_veh,$process,0F 57 C9 48 ?? ?? E8 ?? ?? ?? FF BF 41 B0 9B A1 B9 BE E5 67 41 84 C0 0F 45 F9 ?? ?? ?? ?? ?? ?? 48) // should be unique
alloc(newmem,$1000,god_off_enem_drv_veh)
label(code)
label(return)
newmem:
mov r8,rax //save
mov r14,[rsp]
mov rax, [r14]
lea rax, [r14-8]
mov byte ptr [rax+0E9],0
code:
mov rax,r8 //load
xorps xmm1,xmm1
mov rcx,rsi
jmp return
god_off_enem_drv_veh:
jmp newmem
nop
return:
registersymbol(god_off_enem_drv_veh)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
god_off_enem_drv_veh:
db 0F 57 C9 48 89 F1
unregistersymbol(god_off_enem_drv_veh)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1EC9A78
MadMax.exe+1EC9A59: 48 89 C1 - mov rcx,rax
MadMax.exe+1EC9A5C: E8 BF 07 D9 FF - call MadMax.exe+1C5A220
MadMax.exe+1EC9A61: 89 C3 - mov ebx,eax
MadMax.exe+1EC9A63: 48 89 F1 - mov rcx,rsi
MadMax.exe+1EC9A66: E8 B5 07 D9 FF - call MadMax.exe+1C5A220
MadMax.exe+1EC9A6B: 89 C1 - mov ecx,eax
MadMax.exe+1EC9A6D: 89 DA - mov edx,ebx
MadMax.exe+1EC9A6F: E8 9C 84 48 00 - call MadMax.exe+2351F10
MadMax.exe+1EC9A74: 84 C0 - test al,al
MadMax.exe+1EC9A76: 74 1A - je MadMax.exe+1EC9A92
// ---------- INJECTING HERE ----------
MadMax.exe+1EC9A78: 0F 57 C9 - xorps xmm1,xmm1
// ---------- DONE INJECTING ----------
MadMax.exe+1EC9A7B: 48 89 F1 - mov rcx,rsi
MadMax.exe+1EC9A7E: E8 8D 87 DB FF - call MadMax.exe+1C82210
MadMax.exe+1EC9A83: BF 41 B0 9B A1 - mov edi,A19BB041
MadMax.exe+1EC9A88: B9 BE E5 67 41 - mov ecx,4167E5BE
MadMax.exe+1EC9A8D: 84 C0 - test al,al
MadMax.exe+1EC9A8F: 0F 45 F9 - cmovne edi,ecx
MadMax.exe+1EC9A92: 41 89 F8 - mov r8d,edi
MadMax.exe+1EC9A95: 4C 89 E2 - mov rdx,r12
MadMax.exe+1EC9A98: 48 89 E9 - mov rcx,rbp
MadMax.exe+1EC9A9B: E8 90 18 14 01 - call MadMax.exe+300B330
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17375</ID>
<Description>"Ножи не расходуются (заточки)."</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax_Steam.exe
Version:
Date : 2021-05-27
Author : Reverser69
}
[ENABLE]
aobscanmodule(noShivDec,$process,48 8B B6 68 03 00 00 4D)
// hits several opcodes, but first one is correct...
aobscanmodule(JMPnoShiv,$process,48 8B 8D 90 04 00 00 48 * * E8)
alloc(newmem,$100,$process)
label(code)
label(return)
newmem:
mov rsi,[rsi+00000368]
code:
jmp JMPnoShiv
jmp return
noShivDec:
jmp newmem
nop 2
return:
registersymbol(noShivDec)
[DISABLE]
noShivDec:
db 48 8B B6 68 03 00 00
unregistersymbol(noShivDec)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_Steam.exe"+1CF4F6F
"MadMax_Steam.exe"+1CF4F50: 49 8B 04 24 - mov rax,[r12]
"MadMax_Steam.exe"+1CF4F54: 48 8D 15 71 02 B0 FF - lea rdx,[MadMax_Steam.exe+17F51CC]
"MadMax_Steam.exe"+1CF4F5B: 4C 89 E1 - mov rcx,r12
"MadMax_Steam.exe"+1CF4F5E: FF 50 10 - call qword ptr [rax+10]
"MadMax_Steam.exe"+1CF4F61: 84 C0 - test al,al
"MadMax_Steam.exe"+1CF4F63: 74 07 - je MadMax_Steam.exe+1CF4F6C
"MadMax_Steam.exe"+1CF4F65: 49 83 C4 F8 - add r12,-08
"MadMax_Steam.exe"+1CF4F69: EB 04 - jmp MadMax_Steam.exe+1CF4F6F
"MadMax_Steam.exe"+1CF4F6B: B1 49 - mov cl,49
"MadMax_Steam.exe"+1CF4F6D: 89 FC - mov esp,edi
// ---------- INJECTING HERE ----------
"MadMax_Steam.exe"+1CF4F6F: 48 8B B6 68 03 00 00 - mov rsi,[rsi+00000368]
// ---------- DONE INJECTING ----------
"MadMax_Steam.exe"+1CF4F76: 4D 85 E4 - test r12,r12
"MadMax_Steam.exe"+1CF4F79: 0F 84 2F 0B 00 00 - je MadMax_Steam.exe+1CF5AAE
"MadMax_Steam.exe"+1CF4F7F: 48 85 F6 - test rsi,rsi
"MadMax_Steam.exe"+1CF4F82: 0F 84 26 0B 00 00 - je MadMax_Steam.exe+1CF5AAE
"MadMax_Steam.exe"+1CF4F88: 48 8D 8E C8 00 00 00 - lea rcx,[rsi+000000C8]
"MadMax_Steam.exe"+1CF4F8F: 48 8D 95 80 00 00 00 - lea rdx,[rbp+00000080]
"MadMax_Steam.exe"+1CF4F96: E8 25 3E ED FF - call MadMax_Steam.exe+1BC8DC0
"MadMax_Steam.exe"+1CF4F9B: 90 - nop
"MadMax_Steam.exe"+1CF4F9C: 48 89 F2 - mov rdx,rsi
"MadMax_Steam.exe"+1CF4F9F: 48 89 D9 - mov rcx,rbx
}
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_Steam.exe"+1CF5AAE
"MadMax_Steam.exe"+1CF5A92: 18 48 8D - sbb [rax-73],cl
"MadMax_Steam.exe"+1CF5A95: 96 - xchg eax,esi
"MadMax_Steam.exe"+1CF5A96: A8 09 - test al,09
"MadMax_Steam.exe"+1CF5A98: 00 00 - add [rax],al
"MadMax_Steam.exe"+1CF5A9A: 4C 89 E1 - mov rcx,r12
"MadMax_Steam.exe"+1CF5A9D: E8 EE C2 C8 00 - call MadMax_Steam.exe+2981D90
"MadMax_Steam.exe"+1CF5AA2: 84 C0 - test al,al
"MadMax_Steam.exe"+1CF5AA4: 74 08 - je MadMax_Steam.exe+1CF5AAE
"MadMax_Steam.exe"+1CF5AA6: 48 89 D9 - mov rcx,rbx
"MadMax_Steam.exe"+1CF5AA9: E8 52 BC F8 FF - call MadMax_Steam.exe+1C81700
// ---------- INJECTING HERE ----------
"MadMax_Steam.exe"+1CF5AAE: 48 8B 8D 90 04 00 00 - mov rcx,[rbp+00000490]
// ---------- DONE INJECTING ----------
"MadMax_Steam.exe"+1CF5AB5: 48 31 E1 - xor rcx,rsp
"MadMax_Steam.exe"+1CF5AB8: E8 53 3B 34 01 - call MadMax_Steam.exe+3039610
"MadMax_Steam.exe"+1CF5ABD: 4C 8D 9C 24 D0 05 00 00 - lea r11,[rsp+000005D0]
"MadMax_Steam.exe"+1CF5AC5: 49 8B 5B 58 - mov rbx,[r11+58]
"MadMax_Steam.exe"+1CF5AC9: 41 0F 28 73 F0 - movaps xmm6,[r11-10]
"MadMax_Steam.exe"+1CF5ACE: 41 0F 28 7B E0 - movaps xmm7,[r11-20]
"MadMax_Steam.exe"+1CF5AD3: 45 0F 28 43 D0 - movaps xmm8,[r11-30]
"MadMax_Steam.exe"+1CF5AD8: 4C 89 DC - mov rsp,r11
"MadMax_Steam.exe"+1CF5ADB: 41 5F - pop r15
"MadMax_Steam.exe"+1CF5ADD: 41 5E - pop r14
}
{
"MadMax_GOG.exe"+157157: 48 8B CB - mov rcx,rbx
"MadMax_GOG.exe"+15715A: E8 B1 67 F9 FF - call MadMax_GOG.exe+ED910
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+15715F: 48 8B 8D 90 04 00 00 - mov rcx,[rbp+00000490]
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+157166: 48 33 CC - xor rcx,rsp
"MadMax_GOG.exe"+157169: E8 62 CD E4 00 - call MadMax_GOG.exe+FA3ED0
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17399</ID>
<Description>"Вызов машины в любой точке"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-02-08
Author : Shetal
}
[ENABLE]
aobscanmodule(carCall,$process,0F 2F 97 80 00 00 00 76)
globalalloc(hCode1,1,$process)
hCode1:
readMem(carCall+07,1)
carCall+07:
db eb
registersymbol(carCall)
[DISABLE]
carCall+07:
readMem(hCode1,1)
unregistersymbol(carCall)
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_Steam.exe"+21E1C48
"MadMax_Steam.exe"+21E1C1E: F3 0F 59 C9 - mulss xmm1,xmm1
"MadMax_Steam.exe"+21E1C22: F3 0F 59 ED - mulss xmm5,xmm5
"MadMax_Steam.exe"+21E1C26: F3 0F 58 CD - addss xmm1,xmm5
"MadMax_Steam.exe"+21E1C2A: F3 0F 59 C0 - mulss xmm0,xmm0
"MadMax_Steam.exe"+21E1C2E: F3 0F 58 C8 - addss xmm1,xmm0
"MadMax_Steam.exe"+21E1C32: F3 0F 51 D1 - sqrtss xmm2,xmm1
"MadMax_Steam.exe"+21E1C36: 0F 2F 57 78 - comiss xmm2,[rdi+78]
"MadMax_Steam.exe"+21E1C3A: 0F 82 EF 02 00 00 - jb MadMax_Steam.exe+21E1F2F
"MadMax_Steam.exe"+21E1C40: 45 31 F6 - xor r14d,r14d
"MadMax_Steam.exe"+21E1C43: 44 89 74 24 60 - mov [rsp+60],r14d
// ---------- INJECTING HERE ----------
"MadMax_Steam.exe"+21E1C48: 0F 2F 97 80 00 00 00 - comiss xmm2,[rdi+00000080]
// ---------- DONE INJECTING ----------
"MadMax_Steam.exe"+21E1C4F: 76 0C - jna MadMax_Steam.exe+21E1C5D
"MadMax_Steam.exe"+21E1C51: B3 01 - mov bl,01
"MadMax_Steam.exe"+21E1C53: 48 8D 0D B6 50 0F FF - lea rcx,[MadMax_Steam.exe+12D6D10]
"MadMax_Steam.exe"+21E1C5A: EB 0A - jmp MadMax_Steam.exe+21E1C66
"MadMax_Steam.exe"+21E1C5C: 00 30 - add [rax],dh
"MadMax_Steam.exe"+21E1C5E: DB 48 8D - fisttp dword ptr [rax-73]
"MadMax_Steam.exe"+21E1C61: 0D 92 50 0F FF - or eax,FF0F5092
"MadMax_Steam.exe"+21E1C66: E8 C5 B5 DD 00 - call MadMax_Steam.exe+2FBD230
"MadMax_Steam.exe"+21E1C6B: 89 44 24 60 - mov [rsp+60],eax
"MadMax_Steam.exe"+21E1C6F: 49 8B 85 C0 01 00 00 - mov rax,[r13+000001C0]
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17051</ID>
<Description>"Заморозить индикатор тревоги (Горлан)."</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-22
Author : (fling)
}
[ENABLE]
aobscanmodule(alertMeter,$process,0F 2F 83 64 01 00 00) // should be unique
alloc(newmem,$1000,alertMeter)
label(code)
label(return)
newmem:
and [rbx+00000164],00
code:
comiss xmm0,[rbx+00000164]
jmp return
alertMeter:
jmp newmem
nop 2
return:
registersymbol(alertMeter)
[DISABLE]
alertMeter:
db 0F 2F 83 64 01 00 00
unregistersymbol(alertMeter)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+208BD2C
MadMax.exe+208BCEA: C6 83 D9 01 00 00 01 - mov byte ptr [rbx+000001D9],01
MadMax.exe+208BCF1: 48 8D 8B D0 01 00 00 - lea rcx,[rbx+000001D0]
MadMax.exe+208BCF8: E8 33 F6 B6 FF - call MadMax.exe+1BFB330
MadMax.exe+208BCFD: F3 0F 10 83 DC 01 00 00 - movss xmm0,[rbx+000001DC]
MadMax.exe+208BD05: F3 0F 58 06 - addss xmm0,[rsi]
MadMax.exe+208BD09: 0F 2F 05 C8 3B 1A FF - comiss xmm0,[MadMax.exe+122F8D8]
MadMax.exe+208BD10: F3 0F 11 83 DC 01 00 00 - movss [rbx+000001DC],xmm0
MadMax.exe+208BD18: 72 0A - jb MadMax.exe+208BD24
MadMax.exe+208BD1A: C7 83 DC 01 00 00 00 00 00 00 - mov [rbx+000001DC],00000000
MadMax.exe+208BD24: F3 0F 10 83 68 01 00 00 - movss xmm0,[rbx+00000168]
// ---------- INJECTING HERE ----------
MadMax.exe+208BD2C: 0F 2F 83 64 01 00 00 - comiss xmm0,[rbx+00000164]
// ---------- DONE INJECTING ----------
MadMax.exe+208BD33: 77 1C - ja MadMax.exe+208BD51
MadMax.exe+208BD35: 80 BB D8 01 00 00 00 - cmp byte ptr [rbx+000001D8],00
MadMax.exe+208BD3C: 75 13 - jne MadMax.exe+208BD51
MadMax.exe+208BD3E: 48 8D 8B C0 01 00 00 - lea rcx,[rbx+000001C0]
MadMax.exe+208BD45: E8 E6 F5 B6 FF - call MadMax.exe+1BFB330
MadMax.exe+208BD4A: C6 83 D8 01 00 00 01 - mov byte ptr [rbx+000001D8],01
MadMax.exe+208BD51: 48 8B 7C 24 30 - mov rdi,[rsp+30]
MadMax.exe+208BD56: 48 8B 5C 24 38 - mov rbx,[rsp+38]
MadMax.exe+208BD5B: 48 83 C4 20 - add rsp,20
MadMax.exe+208BD5F: 5E - pop rsi
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>17497</ID>
<Description>"Таймер кулдауна награды за оплот (крепость)."</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-07-25
Author : Shetal
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(strongholdAmmoRefill_Shared_OP,MadMax.exe,F3 0F 11 00 EB 09 4C 8D 45 50) // should be unique
alloc(newmem,$1000,strongholdAmmoRefill_Shared_OP)
label(code)
label(return)
label(timer)
newmem:
cmp r8,1
jne code
cmp r9,2
jne code
lea rcx,[rax]
mov [timer],rcx
code:
movss [rax],xmm0
jmp MadMax.exe+1ED2883
jmp return
timer:
dd 00
strongholdAmmoRefill_Shared_OP:
jmp newmem
nop
return:
registersymbol(strongholdAmmoRefill_Shared_OP)
registersymbol(timer)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
strongholdAmmoRefill_Shared_OP:
db F3 0F 11 00 EB 09
unregistersymbol(strongholdAmmoRefill_Shared_OP)
unregistersymbol(timer)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1ED2874
MadMax.exe+1ED2850: E8 6B 80 13 01 - call MadMax.exe+300A8C0
MadMax.exe+1ED2855: 4C 89 E1 - mov rcx,r12
MadMax.exe+1ED2858: 48 89 C3 - mov rbx,rax
MadMax.exe+1ED285B: E8 F0 36 13 01 - call MadMax.exe+3005F50
MadMax.exe+1ED2860: 4C 89 E2 - mov rdx,r12
MadMax.exe+1ED2863: 48 89 D9 - mov rcx,rbx
MadMax.exe+1ED2866: 84 C0 - test al,al
MadMax.exe+1ED2868: 74 10 - je MadMax.exe+1ED287A
MadMax.exe+1ED286A: E8 41 35 13 01 - call MadMax.exe+3005DB0
MadMax.exe+1ED286F: F3 0F 10 45 50 - movss xmm0,[rbp+50]
// ---------- INJECTING HERE ----------
MadMax.exe+1ED2874: F3 0F 11 00 - movss [rax],xmm0
// ---------- DONE INJECTING ----------
MadMax.exe+1ED2878: EB 09 - jmp MadMax.exe+1ED2883
MadMax.exe+1ED287A: 4C 8D 45 50 - lea r8,[rbp+50]
MadMax.exe+1ED287E: E8 5D C6 29 00 - call MadMax.exe+216EEE0
MadMax.exe+1ED2883: 4D 85 F6 - test r14,r14
MadMax.exe+1ED2886: 74 37 - je MadMax.exe+1ED28BF
MadMax.exe+1ED2888: 48 89 F1 - mov rcx,rsi
MadMax.exe+1ED288B: E8 30 80 13 01 - call MadMax.exe+300A8C0
MadMax.exe+1ED2890: 4C 89 F1 - mov rcx,r14
MadMax.exe+1ED2893: 48 89 C3 - mov rbx,rax
MadMax.exe+1ED2896: E8 B5 36 13 01 - call MadMax.exe+3005F50
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17498</ID>
<Description>"Таймер (set to near zero e.g 0.001)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Float</VariableType>
<Address>[timer]</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>106</Key>
</Keys>
<Value>0.001</Value>
<ID>0</ID>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17323</ID>
<Description>"Супер прыжок"</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-22
Author : (fling)
This script does blah blah blah
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(jmpPtr,$process,48 8B 8D 10 01 00 00 45) // should be unique
aobscanmodule(jmpMul,$process,F3 45 0F 59 C8 F3 0F 59 C6) // should be unique
alloc(newmem1,$1000,jmpPtr)
alloc(newmem,$1000,jmpMul)
label(code1)
label(return1)
label(code)
label(return)
label(_zero)
newmem:
push rax
mov rax,[_jPtr]
cmp rax,r12
jne @f
cmp dword ptr [_mulVal],00
je code
comiss xmm7,[_zero]
jna code
mulss xmm7,[_mulVal]
jmp code
@@:
xorps xmm8,xmm8
xorps xmm7,xmm7
xorps xmm6,xmm6
code:
pop rax
mulss xmm9,xmm8
jmp return
newmem1:
mov rcx,[rbp+00000110]
code1:
mov [_jPtr],rcx
jmp return1
_jPtr:
dq 00
_zero:
dd (float)0.0
_mulVal:
dd (float)9.0
jmpPtr:
jmp newmem1
nop 2
return1:
jmpMul:
jmp newmem
return:
registersymbol(jmpPtr)
registersymbol(_jPtr)
registersymbol(jmpMul)
registersymbol(_mulVal)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
jmpPtr:
db 48 8B 8D 10 01 00 00
jmpMul:
db F3 45 0F 59 C8
unregistersymbol(jmpPtr)
unregistersymbol(_jPtr)
unregistersymbol(jmpMul)
unregistersymbol(_mulVal)
dealloc(newmem1)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+20B6872
MadMax.exe+20B684C: 48 85 C0 - test rax,rax
MadMax.exe+20B684F: 75 0E - jne MadMax.exe+20B685F
MadMax.exe+20B6851: 8D 50 02 - lea edx,[rax+02]
MadMax.exe+20B6854: 45 31 C0 - xor r8d,r8d
MadMax.exe+20B6857: 48 89 F1 - mov rcx,rsi
MadMax.exe+20B685A: E8 81 A0 BF 00 - call MadMax.exe+2CB08E0
MadMax.exe+20B685F: 0F B6 8C 24 88 00 00 00 - movzx ecx,byte ptr [rsp+00000088]
MadMax.exe+20B6867: 8B 13 - mov edx,[rbx]
MadMax.exe+20B6869: 4C 8D 44 24 70 - lea r8,[rsp+70]
MadMax.exe+20B686E: 88 4C 24 20 - mov [rsp+20],cl
// ---------- INJECTING HERE ----------
MadMax.exe+20B6872: 48 8B 8D 10 01 00 00 - mov rcx,[rbp+00000110]
// ---------- DONE INJECTING ----------
MadMax.exe+20B6879: 45 31 C9 - xor r9d,r9d
MadMax.exe+20B687C: E8 DF FF 18 00 - call MadMax.exe+2246860
MadMax.exe+20B6881: 84 C0 - test al,al
MadMax.exe+20B6883: 74 0A - je MadMax.exe+20B688F
MadMax.exe+20B6885: F3 0F 10 0D 4B 90 17 FF - movss xmm1,[MadMax.exe+122F8D8]
MadMax.exe+20B688D: EB 03 - jmp MadMax.exe+20B6892
MadMax.exe+20B688F: 0F 57 C9 - xorps xmm1,xmm1
MadMax.exe+20B6892: 48 89 F9 - mov rcx,rdi
MadMax.exe+20B6895: E8 66 FC EF 00 - call MadMax.exe+2FB6500
MadMax.exe+20B689A: 48 8B 5C 24 68 - mov rbx,[rsp+68]
}
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+224F78D
MadMax.exe+224F75D: 8B 45 B7 - mov eax,[rbp-49]
MadMax.exe+224F760: 48 8B BC 24 E0 00 00 00 - mov rdi,[rsp+000000E0]
MadMax.exe+224F768: 48 8B 9C 24 D0 00 00 00 - mov rbx,[rsp+000000D0]
MadMax.exe+224F770: F3 45 0F 5E CB - divss xmm9,xmm11
MadMax.exe+224F775: 41 89 44 24 08 - mov [r12+08],eax
MadMax.exe+224F77A: 8B 45 BB - mov eax,[rbp-45]
MadMax.exe+224F77D: 41 89 44 24 0C - mov [r12+0C],eax
MadMax.exe+224F782: 8B 45 BF - mov eax,[rbp-41]
MadMax.exe+224F785: 41 0F 28 C1 - movaps xmm0,xmm9
MadMax.exe+224F789: 41 0F 28 C9 - movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
MadMax.exe+224F78D: F3 45 0F 59 C8 - mulss xmm9,xmm8
// ---------- DONE INJECTING ----------
MadMax.exe+224F792: F3 0F 59 C6 - mulss xmm0,xmm6
MadMax.exe+224F796: F3 0F 59 CF - mulss xmm1,xmm7
MadMax.exe+224F79A: 44 0F 28 84 24 90 00 00 00 - movaps xmm8,[rsp+00000090]
MadMax.exe+224F7A3: 0F 28 BC 24 A0 00 00 00 - movaps xmm7,[rsp+000000A0]
MadMax.exe+224F7AB: 0F 28 B4 24 B0 00 00 00 - movaps xmm6,[rsp+000000B0]
MadMax.exe+224F7B3: 41 89 44 24 10 - mov [r12+10],eax
MadMax.exe+224F7B8: F3 44 0F 11 4D BF - movss [rbp-41],xmm9
MadMax.exe+224F7BE: F3 0F 11 45 B7 - movss [rbp-49],xmm0
MadMax.exe+224F7C3: 8B 45 B7 - mov eax,[rbp-49]
MadMax.exe+224F7C6: F3 0F 11 4D BB - movss [rbp-45],xmm1
}
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>16</Key>
<Key>221</Key>
</Keys>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
<DeactivateSound>Deactivate</DeactivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17324</ID>
<Description>"Множитель ( enable GM for higher)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>FFFF00</Color>
<VariableType>Float</VariableType>
<Address>_mulVal</Address>
<Hotkeys>
<Hotkey>
<Action>Increase Value</Action>
<Keys>
<Key>16</Key>
<Key>219</Key>
</Keys>
<Value>3</Value>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17377</ID>
<Description>"Супер скорость"</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-24
Author : FutureX
}
[ENABLE]
aobscanmodule(superSptr,$process,48 8B 1C F8 48 * * 48 8B 03) // should be unique
aobscanmodule(superSpeed,$process,0F 29 81 E0 00 00 00 C3) // should be unique
alloc(newmem1,$1000,superSptr)
alloc(newmem,$1000,superSpeed)
label(code1)
label(return1)
label(code)
label(return)
label(mylable)
newmem:
movaps [rcx+000000E0],xmm0
push rsi
push rbx
lea rbx,[mylable] ///*****mov
cmp [rbx],rcx
je @f
mov esi,[playerFloat]
cmp [rcx+74],esi
jne code
mov [mylable],rcx
@@:
mov esi,40C00000
cmp [rcx+000000E0],esi
jnl code
cmp [rcx+000000E4],esi
jnl code
cmp [rcx+000000E8],esi
jnl code
mov esi,C0C00000
cmp [rcx+000000E0],esi
jae code
cmp [rcx+000000E4],esi
jae code
cmp [rcx+000000E8],esi
jae code
lea rbx,[rcx-50]
cmp byte ptr [rbx],01
jne code
mov rbx,speedmul
fld dword ptr [rcx+000000E0]
fmul dword ptr [rbx]
fstp dword ptr [rcx+000000E0]
fld dword ptr [rcx+000000E4]
fmul dword ptr [rbx]
fstp dword ptr [rcx+000000E4]
fld dword ptr [rcx+000000E8]
fmul dword ptr [rbx]
fstp dword ptr [rcx+000000E8]
code:
pop rbx
pop rsi
jmp return
newmem1:
fld dword ptr [rbp+0000020C]
fstp dword ptr [playerFloat]
code1:
mov rbx,[rax+rdi*8]
mov rcx,rbx
jmp return1
speedmul:
dd (float)3.0
mylable:
dq 00
playerFloat:
dd 00
superSptr:
jmp newmem1
nop 2
return1:
superSpeed:
jmp newmem
nop 2
return:
registersymbol(superSptr)
registersymbol(playerFloat)
registersymbol(superSpeed)
registersymbol(speedmul)
[DISABLE]
superSptr:
db 48 8B 1C F8 48 89 D9
superSpeed:
db 0F 29 81 E0 00 00 00
unregistersymbol(superSptr)
unregistersymbol(playerFloat)
unregistersymbol(superSpeed)
unregistersymbol(speedmul)
dealloc(newmem1)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1F7D318
MadMax.exe+1F7D2F7: 41 0F 28 F8 - movaps xmm7,xmm8
MadMax.exe+1F7D2FB: 48 8B 46 38 - mov rax,[rsi+38]
MadMax.exe+1F7D2FF: 48 2B 46 30 - sub rax,[rsi+30]
MadMax.exe+1F7D303: 48 C1 F8 03 - sar rax,03
MadMax.exe+1F7D307: FF C8 - dec eax
MadMax.exe+1F7D309: 48 63 F8 - movsxd rdi,eax
MadMax.exe+1F7D30C: 78 3C - js MadMax.exe+1F7D34A
MadMax.exe+1F7D30E: 66 90 - nop 2
MadMax.exe+1F7D310: 48 8B 46 30 - mov rax,[rsi+30]
MadMax.exe+1F7D314: 41 0F 28 C9 - movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
MadMax.exe+1F7D318: 48 8B 1C F8 - mov rbx,[rax+rdi*8]
// ---------- DONE INJECTING ----------
MadMax.exe+1F7D31C: 48 89 D9 - mov rcx,rbx
MadMax.exe+1F7D31F: 48 8B 03 - mov rax,[rbx]
MadMax.exe+1F7D322: FF 50 20 - call qword ptr [rax+20]
MadMax.exe+1F7D325: 80 7B 24 FF - cmp byte ptr [rbx+24],-01
MadMax.exe+1F7D329: 74 1A - je MadMax.exe+1F7D345
MadMax.exe+1F7D32B: 41 0F 2F F8 - comiss xmm7,xmm8
MadMax.exe+1F7D32F: 76 0F - jna act1
MadMax.exe+1F7D331: 48 8B 03 - mov rax,[rbx]
MadMax.exe+1F7D334: 0F 28 CF - movaps xmm1,xmm7
MadMax.exe+1F7D337: 48 89 D9 - mov rcx,rbx
}
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+2BBEB33
MadMax.exe+2BBEB20: 48 83 C1 60 - add rcx,60
MadMax.exe+2BBEB24: E9 27 16 E4 FF - jmp MadMax.exe+2A00150
MadMax.exe+2BBEB29: CC - int 3
MadMax.exe+2BBEB2A: CC - int 3
MadMax.exe+2BBEB2B: CC - int 3
MadMax.exe+2BBEB2C: CC - int 3
MadMax.exe+2BBEB2D: CC - int 3
MadMax.exe+2BBEB2E: CC - int 3
MadMax.exe+2BBEB2F: CC - int 3
MadMax.exe+2BBEB30: 0F 28 02 - movaps xmm0,[rdx]
// ---------- INJECTING HERE ----------
MadMax.exe+2BBEB33: 0F 29 81 E0 00 00 00 - movaps [rcx+000000E0],xmm0
// ---------- DONE INJECTING ----------
MadMax.exe+2BBEB3A: C3 - ret
MadMax.exe+2BBEB3B: B1 00 - mov cl,00
MadMax.exe+2BBEB3D: CC - int 3
MadMax.exe+2BBEB3E: CC - int 3
MadMax.exe+2BBEB3F: CC - int 3
MadMax.exe+2BBEB40: CC - int 3
MadMax.exe+2BBEB41: CC - int 3
MadMax.exe+2BBEB42: CC - int 3
MadMax.exe+2BBEB43: CC - int 3
MadMax.exe+2BBEB44: CC - int 3
}
{
"MadMax_GOG.exe"+38DC00: 48 8B 46 30 - mov rax,[rsi+30]
"MadMax_GOG.exe"+38DC04: 41 0F 28 C9 - movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+38DC08: 48 8B 1C F8 - mov rbx,[rax+rdi*8]
"MadMax_GOG.exe"+38DC0C: 48 8B CB - mov rcx,rbx
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+38DC0F: 48 8B 03 - mov rax,[rbx]
"MadMax_GOG.exe"+38DC12: FF 50 20 - call qword ptr [rax+20]
}
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>16</Key>
<Key>191</Key>
</Keys>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
<DeactivateSound>Deactivate</DeactivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17378</ID>
<Description>"Множитель"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>FFFF00</Color>
<VariableType>Float</VariableType>
<Address>speedmul</Address>
<Hotkeys>
<Hotkey>
<Action>Increase Value</Action>
<Keys>
<Key>16</Key>
<Key>190</Key>
</Keys>
<Value>3</Value>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17392</ID>
<Description>"Построить все проекты оплота (крепости)."</Description>
<Options moManualExpandCollapse="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-27
Author : Shetal aka Reverser69
}
[ENABLE]
aobscanmodule(getProject,$process,48 89 5C 24 10 55 56 57 41 54 41 56 48 83 EC 30 48 * * 48 * * 41)
aobscanmodule(setProject,$process,55 57 41 55 48 83 EC 40 * * * * * * 48)
alloc(newmem,$1000,getProject)
registersymbol(getProject)
registersymbol(setProject)
globalalloc(callVersion,8,$process)
globalalloc(hVersion,1,$process)
hVersion:
readMem(setProject-1,1)
label(code)
label(return)
newmem:
push rax
push rcx
push rdx
push rbx
push rbp
push rsi
push rdi
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
//we are hooking the getProject function before it does anything,
//we call setProject function using arguments passed to getProject, so all projects are SET to DONE state.
sub rsp,320 //just to make sure xD
mov r8d,D3634003
// verify which game version: Steam 'CC 55' or GOG '40 55'
push rax
mov rax,setProject
mov [callVersion],rax
cmp byte ptr [hVersion],0xCC
je short @f
dec rax
mov [callVersion],rax
@@:
pop rax
call [callVersion] //141EA4D30
add rsp,320
pop r15
pop r14
pop r13
pop r12
pop r11
pop r10
pop r9
pop r8
pop rdi
pop rsi
pop rbp
pop rbx
pop rdx
pop rcx
pop rax
code:
mov [rsp+10],rbx
jmp return
getProject:
jmp newmem
return:
[DISABLE]
getProject:
db 48 89 5C 24 10
unregistersymbol(getProject)
unregistersymbol(setProject)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1EA4BC0
MadMax.exe+1EA4BB1: CC - int 3
MadMax.exe+1EA4BB2: CC - int 3
MadMax.exe+1EA4BB3: CC - int 3
MadMax.exe+1EA4BB4: CC - int 3
MadMax.exe+1EA4BB5: CC - int 3
MadMax.exe+1EA4BB6: CC - int 3
MadMax.exe+1EA4BB7: CC - int 3
MadMax.exe+1EA4BB8: CC - int 3
MadMax.exe+1EA4BB9: CC - int 3
MadMax.exe+1EA4BBA: 66 0F 1F 44 00 00 - nop word ptr [rax+rax+00]
// ---------- INJECTING HERE ----------
MadMax.exe+1EA4BC0: 48 89 5C 24 10 - mov [rsp+10],rbx
// ---------- DONE INJECTING ----------
MadMax.exe+1EA4BC5: 55 - push rbp
MadMax.exe+1EA4BC6: 56 - push rsi
MadMax.exe+1EA4BC7: 57 - push rdi
MadMax.exe+1EA4BC8: 41 54 - push r12
MadMax.exe+1EA4BCA: 41 56 - push r14
MadMax.exe+1EA4BCC: 48 83 EC 30 - sub rsp,30
MadMax.exe+1EA4BD0: 48 89 D7 - mov rdi,rdx
MadMax.exe+1EA4BD3: 48 89 CB - mov rbx,rcx
MadMax.exe+1EA4BD6: 41 81 F8 4A A7 4B C9 - cmp r8d,C94BA74A
MadMax.exe+1EA4BDD: 0F 85 29 01 00 00 - jne MadMax.exe+1EA4D0C
}
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_GOG.exe"+2D5680
"MadMax_GOG.exe"+2D5676: CC - int 3
"MadMax_GOG.exe"+2D5677: CC - int 3
"MadMax_GOG.exe"+2D5678: CC - int 3
"MadMax_GOG.exe"+2D5679: CC - int 3
"MadMax_GOG.exe"+2D567A: CC - int 3
"MadMax_GOG.exe"+2D567B: CC - int 3
"MadMax_GOG.exe"+2D567C: CC - int 3
"MadMax_GOG.exe"+2D567D: CC - int 3
"MadMax_GOG.exe"+2D567E: CC - int 3
"MadMax_GOG.exe"+2D567F: CC - int 3
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+2D5680: 48 89 5C 24 10 - mov [rsp+10],rbx
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+2D5685: 55 - push rbp
"MadMax_GOG.exe"+2D5686: 56 - push rsi
"MadMax_GOG.exe"+2D5687: 57 - push rdi
"MadMax_GOG.exe"+2D5688: 41 54 - push r12
"MadMax_GOG.exe"+2D568A: 41 56 - push r14
"MadMax_GOG.exe"+2D568C: 48 83 EC 30 - sub rsp,30
"MadMax_GOG.exe"+2D5690: 48 8B FA - mov rdi,rdx
"MadMax_GOG.exe"+2D5693: 48 8B D9 - mov rbx,rcx
"MadMax_GOG.exe"+2D5696: 41 81 F8 4A A7 4B C9 - cmp r8d,C94BA74A
"MadMax_GOG.exe"+2D569D: 0F 85 19 01 00 00 - jne MadMax_GOG.exe+2D57BC
}
// 2nd AOB
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_GOG.exe"+2D57E0
"MadMax_GOG.exe"+2D57D6: CC - int 3
"MadMax_GOG.exe"+2D57D7: CC - int 3
"MadMax_GOG.exe"+2D57D8: CC - int 3
"MadMax_GOG.exe"+2D57D9: CC - int 3
"MadMax_GOG.exe"+2D57DA: CC - int 3
"MadMax_GOG.exe"+2D57DB: CC - int 3
"MadMax_GOG.exe"+2D57DC: CC - int 3
"MadMax_GOG.exe"+2D57DD: CC - int 3
"MadMax_GOG.exe"+2D57DE: CC - int 3
"MadMax_GOG.exe"+2D57DF: CC - int 3
// ---------- INJECTING HERE ---------- 49
"MadMax_GOG.exe"+2D57E0: 40 55 - push rbp
"MadMax_GOG.exe"+2D57E2: 57 - push rdi
"MadMax_GOG.exe"+2D57E3: 41 55 - push r13
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+2D57E5: 48 83 EC 40 - sub rsp,40
"MadMax_GOG.exe"+2D57E9: 41 8B F8 - mov edi,r8d
"MadMax_GOG.exe"+2D57EC: 4C 8B EA - mov r13,rdx
"MadMax_GOG.exe"+2D57EF: 48 8B E9 - mov rbp,rcx
"MadMax_GOG.exe"+2D57F2: 41 81 F8 CA 50 73 FD - cmp r8d,FD7350CA
"MadMax_GOG.exe"+2D57F9: 74 16 - je MadMax_GOG.exe+2D5811
"MadMax_GOG.exe"+2D57FB: 41 81 F8 03 40 63 D3 - cmp r8d,D3634003
"MadMax_GOG.exe"+2D5802: 74 0D - je MadMax_GOG.exe+2D5811
"MadMax_GOG.exe"+2D5804: 41 81 F8 D0 FF 56 2D - cmp r8d,2D56FFD0
"MadMax_GOG.exe"+2D580B: 0F 85 52 01 00 00 - jne MadMax_GOG.exe+2D5963
//
MadMax_GOG.exe+2D5811 - 48 89 5C 24 60 - mov [rsp+60],rbx
MadMax_GOG.exe+2D5816 - 48 89 74 24 68 - mov [rsp+68],rsi
MadMax_GOG.exe+2D581B - 41 B8 26203D16 - mov r8d,163D2026
MadMax_GOG.exe+2D5821 - 4C 89 64 24 78 - mov [rsp+78],r12
MadMax_GOG.exe+2D5826 - 4C 89 7C 24 30 - mov [rsp+30],r15
MadMax_GOG.exe+2D582B - E8 9042CA00 - call MadMax_GOG.exe+F79AC0
MadMax_GOG.exe+2D5830 - 45 33 FF - xor r15d,r15d
MadMax_GOG.exe+2D5833 - 48 8B D8 - mov rbx,rax
MadMax_GOG.exe+2D5836 - 48 85 C0 - test rax,rax
MadMax_GOG.exe+2D5839 - 74 37 - je MadMax_GOG.exe+2D5872
MadMax_GOG.exe+2D583B - 48 8B CD - mov rcx,rbp
MadMax_GOG.exe+2D583E - E8 FD33CA00 - call MadMax_GOG.exe+F78C40
MadMax_GOG.exe+2D5843 - 48 8B CB - mov rcx,rbx
MadMax_GOG.exe+2D5846 - 41 8B F7 - mov esi,r15d
MadMax_GOG.exe+2D5849 - 4C 8B E0 - mov r12,rax
MadMax_GOG.exe+2D584C - E8 8FF4C900 - call MadMax_GOG.exe+F74CE0
}
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_Steam.exe"+1EA4D30
"MadMax_Steam.exe"+1EA4D26: CC - int 3
"MadMax_Steam.exe"+1EA4D27: CC - int 3
"MadMax_Steam.exe"+1EA4D28: CC - int 3
"MadMax_Steam.exe"+1EA4D29: CC - int 3
"MadMax_Steam.exe"+1EA4D2A: CC - int 3
"MadMax_Steam.exe"+1EA4D2B: CC - int 3
"MadMax_Steam.exe"+1EA4D2C: CC - int 3
"MadMax_Steam.exe"+1EA4D2D: CC - int 3
"MadMax_Steam.exe"+1EA4D2E: CC - int 3
"MadMax_Steam.exe"+1EA4D2F: CC - int 3
// ---------- INJECTING HERE ---------- 48
"MadMax_Steam.exe"+1EA4D30: 55 - push rbp
"MadMax_Steam.exe"+1EA4D31: 57 - push rdi
"MadMax_Steam.exe"+1EA4D32: 41 55 - push r13
"MadMax_Steam.exe"+1EA4D34: 48 83 EC 40 - sub rsp,40
// ---------- DONE INJECTING ----------
"MadMax_Steam.exe"+1EA4D38: 44 89 C7 - mov edi,r8d
"MadMax_Steam.exe"+1EA4D3B: 49 89 D5 - mov r13,rdx
"MadMax_Steam.exe"+1EA4D3E: 48 89 CD - mov rbp,rcx
"MadMax_Steam.exe"+1EA4D41: 41 81 F8 CA 50 73 FD - cmp r8d,FD7350CA
"MadMax_Steam.exe"+1EA4D48: 74 16 - je MadMax_Steam.exe+1EA4D60
"MadMax_Steam.exe"+1EA4D4A: 41 81 F8 03 40 63 D3 - cmp r8d,D3634003
"MadMax_Steam.exe"+1EA4D51: 74 0D - je MadMax_Steam.exe+1EA4D60
"MadMax_Steam.exe"+1EA4D53: 41 81 F8 D0 FF 56 2D - cmp r8d,2D56FFD0
"MadMax_Steam.exe"+1EA4D5A: 0F 85 6A 01 00 00 - jne MadMax_Steam.exe+1EA4ECA
//
"MadMax_Steam.exe"+1EA4D60: 48 89 5C 24 60 - mov [rsp+60],rbx
MadMax_Steam.exe+1EA4D65 - 48 89 74 24 68 - mov [rsp+68],rsi
MadMax_Steam.exe+1EA4D6A - 41 B8 26203D16 - mov r8d,163D2026
MadMax_Steam.exe+1EA4D70 - 4C 89 64 24 78 - mov [rsp+78],r12
MadMax_Steam.exe+1EA4D75 - 4C 89 7C 24 30 - mov [rsp+30],r15
MadMax_Steam.exe+1EA4D7A - E8 516B1601 - call MadMax_Steam.exe+300B8D0
MadMax_Steam.exe+1EA4D7F - 45 31 FF - xor r15d,r15d
MadMax_Steam.exe+1EA4D82 - 48 89 C3 - mov rbx,rax
MadMax_Steam.exe+1EA4D85 - 48 85 C0 - test rax,rax
MadMax_Steam.exe+1EA4D88 - 74 41 - je MadMax_Steam.exe+1EA4DCB
MadMax_Steam.exe+1EA4D8A - 48 89 E9 - mov rcx,rbp
MadMax_Steam.exe+1EA4D8D - E8 2E5B1601 - call MadMax_Steam.exe+300A8C0
MadMax_Steam.exe+1EA4D92 - 48 89 D9 - mov rcx,rbx
MadMax_Steam.exe+1EA4D95 - 44 89 FE - mov esi,r15d
MadMax_Steam.exe+1EA4D98 - 49 89 C4 - mov r12,rax
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17393</ID>
<Description>"Справка"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "Все постройки автоматически построятся если войти в крепость."
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17307</ID>
<Description>"Дневное время."</Description>
<Options moHideChildren="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-24
Author : Reverser69
}
[ENABLE]
aobscanmodule(dayTime,$process,66 89 87 24 04 00 00 0F) // should be unique
alloc(newmem,$1000,dayTime)
label(code)
label(return)
label(float_24)
newmem:
push rcx
movaps xmm15,xmm1
movaps xmm14,xmm0
cmp [rdi+00000110],410A1100
je @f
cmp [rdi+00000114],440216EA
je @f
cmp [rdi+00000118],41B8EF00
je @f
cmp [rdi+00000e0],3F6C835E
je @f
cmp [rdi+00000e8],3EC3EF16
je @f
cmp [rdi+00000100],BEC3EF16
je @f
cmp [rdi+00000108],3F6C835E
je @f
cmp [rdi+0000042C],00010000
je @f
cmp [rdi+000004aC],41EFFFFF
je @f
cmp [rdi+000004b0],#150
je @f
jmp code
//getting time multiplier (defualt value = 0.03333333507 ~ hex = 3D088889 )
@@:
test rsi,rsi
jnz code
lea rcx,[rdi+000004a8]
mov [dayTimeMul],rcx
//cvt time (int to fpoint)
movzx ecx,word ptr [rdi+00000424]
movd xmm0,ecx
cvtdq2ps xmm0,xmm0
movzx ecx,word ptr [rdi+00000430]
movd xmm1,ecx
cvtdq2ps xmm1,xmm1
movss xmm13,[rdi+00000418]
addss xmm13,xmm0
mulss xmm13,[float_24] //(float)24.0
divss xmm13,xmm1
movss [cvtTime],xmm13
@@:
cmp byte ptr [changeDayTime],1
jne code
mov byte ptr [changeDayTime],0
//cvt time (fpoint to int)
movzx ecx,word ptr [rdi+00000430]
movd xmm1,ecx
cvtdq2ps xmm1,xmm1
movzx ecx,word ptr [rdi+00000424] //movss xmm6,[rdi+00000418]
movd xmm0,ecx
cvtdq2ps xmm0,xmm0
movss xmm13,[_hour]
mulss xmm13,xmm1
divss xmm13,[float_24] //(float)24.0
movss xmm0,[rdi+00000418]
subss xmm13,xmm0
cvtps2dq xmm1,xmm13
movd eax,xmm1
//mov ax,[_hour]
code:
test byte ptr [rdi+00000434],08 // restoring the flags ~ you could use pushfq
movaps xmm1,xmm15
xorps xmm15,xmm15
xorps xmm13,xmm13
movaps xmm0,xmm14
xorps xmm14,xmm14
pop rcx
mov [rdi+00000424],ax
jmp return
float_24:
dd (float)24.0
changeDayTime:
dd 00
_hour:
dd 00
cvtTime:
dd 00
dayTimeMul:
dd 00//(float)0.03333333507
dayTime:
jmp newmem
nop 2
return:
registersymbol(dayTimeMul)
registersymbol(cvtTime)
registersymbol(dayTime)
registersymbol(_hour)
registersymbol(changeDayTime)
[DISABLE]
dayTime:
db 66 89 87 24 04 00 00
{$lua}
---local mypointer = readinteger("[dayTimeMul]")
writeFloat("[dayTimeMul]", 0.03333333507)
{$asm}
unregistersymbol(dayTimeMul)
unregistersymbol(cvtTime)
unregistersymbol(dayTime)
unregistersymbol(_hour)
unregistersymbol(changeDayTime)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+2193D03
MadMax.exe+2193CD6: 0F 28 C3 - movaps xmm0,xmm3
MadMax.exe+2193CD9: 0F 57 05 20 D5 09 FF - xorps xmm0,[MadMax.exe+1231200]
MadMax.exe+2193CE0: 0F 2F C6 - comiss xmm0,xmm6
MadMax.exe+2193CE3: 73 03 - jae MadMax.exe+2193CE8
MadMax.exe+2193CE5: 0F 28 F3 - movaps xmm6,xmm3
MadMax.exe+2193CE8: F6 87 34 04 00 00 08 - test byte ptr [rdi+00000434],08
MadMax.exe+2193CEF: F3 0F 59 CE - mulss xmm1,xmm6
MadMax.exe+2193CF3: F3 0F 58 8F 18 04 00 00 - addss xmm1,[rdi+00000418]
MadMax.exe+2193CFB: F3 48 0F 2C C9 - cvttss2si rcx,xmm1
MadMax.exe+2193D00: 8D 04 0A - lea eax,[rdx+rcx]
// ---------- INJECTING HERE ----------
MadMax.exe+2193D03: 66 89 87 24 04 00 00 - mov [rdi+00000424],ax
// ---------- DONE INJECTING ----------
MadMax.exe+2193D0A: 0F B7 C1 - movzx eax,cx
MadMax.exe+2193D0D: 66 0F 6E C0 - movd xmm0,eax
MadMax.exe+2193D11: 0F 5B C0 - cvtdq2ps xmm0,xmm0
MadMax.exe+2193D14: F3 0F 5C C8 - subss xmm1,xmm0
MadMax.exe+2193D18: 74 22 - je MadMax.exe+2193D3C
MadMax.exe+2193D1A: F3 0F 59 8F AC 04 00 00 - mulss xmm1,[rdi+000004AC]
MadMax.exe+2193D22: 89 9F 18 04 00 00 - mov [rdi+00000418],ebx
MadMax.exe+2193D28: F3 0F 58 8F 1C 04 00 00 - addss xmm1,[rdi+0000041C]
MadMax.exe+2193D30: F3 0F 11 8F 1C 04 00 00 - movss [rdi+0000041C],xmm1
MadMax.exe+2193D38: EB 0A - jmp MadMax.exe+2193D44
}
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>16</Key>
<Key>187</Key>
</Keys>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
<DeactivateSound>Deactivate</DeactivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17405</ID>
<Description>"Множитель скорости хода времени"</Description>
<Options moManualExpandCollapse="1"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Float</VariableType>
<Address>[dayTimeMul]</Address>
<Hotkeys>
<Hotkey>
<Action>Increase Value</Action>
<Keys>
<Key>16</Key>
<Key>189</Key>
</Keys>
<Value>2</Value>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17420</ID>
<Description>"Справка"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "Установите значение выше нуля что бы ускорить время \r\nили установите 0 что бы заморозить ход времени.\r\nПо умолчанию - 0.03333333507"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17403</ID>
<Description>"Текущее время (converted)"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>C0C0C0</Color>
<VariableType>Float</VariableType>
<Address>cvtTime</Address>
</CheatEntry>
<CheatEntry>
<ID>17419</ID>
<Description>"Установить время (BUGGY) (SEE HELP) "</Description>
<Options moHideChildren="1"/>
<Color>8F92F1</Color>
<GroupHeader>1</GroupHeader>
<Address/>
<CheatEntries>
<CheatEntry>
<ID>17309</ID>
<Description>"enable Set Time"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>changeDayTime</Address>
<CheatEntries>
<CheatEntry>
<ID>17315</ID>
<Description>"HELP"</Description>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "daytime may stop temporarily if you enter\r\na lower value than the current one,\r\nbut you'll be able to change the time. first fill "Hour to change" then set "enable Set Time" to 1"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17310</ID>
<Description>"Hour to change"</Description>
<ShowAsSigned>0</ShowAsSigned>
<Color>0000FF</Color>
<VariableType>Float</VariableType>
<Address>_hour</Address>
<CheatEntries>
<CheatEntry>
<ID>17328</ID>
<Description>"HELP"</Description>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "enter a float between 1 to 24. it must be greater than \r\n"current time" value. my advice : just dont use this cheat \r\nand use Day Time Speed Multiplier to make sure no bugs \r\nwill appear. if afer setting the time to your value, \r\ngame froze, speed up the time by "Day Time Speed Multiplier" \r\nin most cases itll fix the issue"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17422</ID>
<Description>"Ядерный удар по всем созданным сущностям (временное удаление из мира)."</Description>
<Options moManualExpandCollapse="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
alloc( CheatHandlerThread, 0x1000, $process )
registersymbol( CheatHandlerThread )
CreateThread( CheatHandlerThread )
registersymbol(bnuke)
aobscanmodule(despawnAllEnt,$process,48 8B 05 ?? ?? ?? ?? 88 88 8A 01 00 00 48 8D 88 70 16 00 00)
CheatHandlerThread:
//push C8
//call kernel32.Sleep
cmp [bnuke],1
je @f
ret
@@:
/*
mov rcx,#48
call GetAsyncKeyState
test ax,8001
//jz CheatHandlerThread
*/
sub rsp,100
mov r8,C94BA74A
mov rcx,9CD0E750
mov rdx,66ac1750
call despawnAllEnt //142114460 steam
add rsp,100
jmp CheatHandlerThread
bnuke:
db 01
/*
141EA6F62:
db 90 90 90 90 90
*/
[DISABLE]
bnuke:
db 00
dealloc( CheatHandlerThread )
unregistersymbol( CheatHandlerThread )
unregistersymbol(bnuke)
</AssemblerScript>
<Hotkeys>
<Hotkey>
<Action>Toggle Activation</Action>
<Keys>
<Key>220</Key>
</Keys>
<ID>0</ID>
<ActivateSound>Activate</ActivateSound>
<DeactivateSound>Deactivate</DeactivateSound>
</Hotkey>
</Hotkeys>
<CheatEntries>
<CheatEntry>
<ID>17461</ID>
<Description>"Справка"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "\r\nIf you disable the script, some enemies will keep being spawned\r\nby the game untill you kill them. Enemies at bases for example.\r\nalso affects other enteties like fuel cans, sometimes(if they are spawned)\r\nwhen you pick them up they disapear. It might also affect scripted events.\r\nso don't keep this cheat activated when you don't need it"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17469</ID>
<Description>"Открыть меню Гриффы."</Description>
<Options moManualExpandCollapse="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
alloc( CheatHandlerThread_HUD_deact, 0x1000, $process )
registersymbol( CheatHandlerThread_HUD_deact )
CreateThread( CheatHandlerThread_HUD_deact )
label(deact_HUD)
label(temp)
label(callDone)
aobscanmodule(hud_deac_call_1,$process,57 48 83 EC 60 48 C7 44 24 20 FE FF FF FF 49 89 5B 08 ?? ?? 48 B8 03 FF FF FF FF 00 00 00 49 89 43 C0 ?? FF ) // continued by 49 89 7B C8 49 89 7B D0 49 89 7B D8 49 89 7B E0 49 89 7B E8
aobscanmodule(hud_deac_call_2,$process,53 48 83 EC 60 48 C7 44 24 20 FE FF FF FF 45 ?? C0 ?? ?? 48 8D 4C 24 78 E8 ?? ?? ?? 00 )
registersymbol( hud_deac_call_1 )
registersymbol( hud_deac_call_2 )
CheatHandlerThread_HUD_deact:
sub rsp,100
lea rdx,[deact_HUD]
mov [temp],rdx
lea rdx,[temp]
mov rcx,5AA2CA77
call hud_deac_call_1-3 //141D04E70 steam
mov rcx,hud_deac_call_2
cmp [rcx-1],40 // is GOG ver?!
jne @f
mov rcx,DA9ACC2F
call hud_deac_call_2-1 //141B74880 steam
jmp callDone
@@:
mov rcx,DA9ACC2F
call hud_deac_call_2
callDone:
add rsp,100
ret
deact_HUD:
//db 'deactivate_hud',0
db 'show_griffa_screen',0
temp:
dd 00
{$lua}
b_griffa = 1
patch_sub_call = getAddressList().getMemoryRecordByID(17469)
patch_sub_call.Active=false
{$asm}
[DISABLE]
dealloc( CheatHandlerThread_HUD_deact )
unregistersymbol( CheatHandlerThread_HUD_deact )
unregistersymbol( hud_deac_call_1 )
unregistersymbol( hud_deac_call_2 )
{$lua}
b_griffa = 0
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>17470</ID>
<Description>"Справка (Читать обязательно!)"</Description>
<Color>C080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
local sMessage = "После применения блокирует движение. \r\nЕсли ты в машине, то не сможешь выйти. \r\nИспользуй Фаст Трейвл что бы вернуть управление"
showMessage(sMessage)
{$asm}
test al,al
[DISABLE]
{$lua}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>0</ID>
<Description>"Бесконечное здоровье и игнорирование урона (старая версия)."</Description>
<Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
<Color>8080FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-22
Author : Reversr69
}
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(act1,$process,F3 0F 58 73 1C 48 FF) // should be unique
alloc(newmem,$1000,act1)
label(code)
label(return)
newmem:
code:
addss xmm6,[rbx+1C]
fld dword ptr [rbp+0000020C]
fstp dword ptr [myFloat]
cmp byte ptr [bHP],01
jne @f
movss xmm6,[rbp+00000180]
movss [rbp+00000184],xmm6
movss [rbx+1C],xmm6
@@:
cmp byte ptr [doGod],1
jne @f
mov byte ptr [rbp+e8],1
@@:
jmp return
myFloat:
dq 00
bHP:
db 00
doGod:
db 00
act1:
jmp newmem
return:
registersymbol(act1)
registersymbol(bHP)
registersymbol(myFloat)
registersymbol(doGod)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
act1:
db F3 0F 58 73 1C
unregistersymbol(act1)
unregistersymbol(bHP)
unregistersymbol(myFloat)
unregistersymbol(doGod)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1F7D340
MadMax.exe+1F7D322: FF 50 20 - call qword ptr [rax+20]
MadMax.exe+1F7D325: 80 7B 24 FF - cmp byte ptr [rbx+24],-01
MadMax.exe+1F7D329: 74 1A - je MadMax.exe+1F7D345
MadMax.exe+1F7D32B: 41 0F 2F F8 - comiss xmm7,xmm8
MadMax.exe+1F7D32F: 76 0F - jna MadMax.exe+1F7D340
MadMax.exe+1F7D331: 48 8B 03 - mov rax,[rbx]
MadMax.exe+1F7D334: 0F 28 CF - movaps xmm1,xmm7
MadMax.exe+1F7D337: 48 89 D9 - mov rcx,rbx
MadMax.exe+1F7D33A: FF 50 30 - call qword ptr [rax+30]
MadMax.exe+1F7D33D: 0F 28 F8 - movaps xmm7,xmm0
// ---------- INJECTING HERE ----------
MadMax.exe+1F7D340: F3 0F 58 73 1C - addss xmm6,[rbx+1C]
// ---------- DONE INJECTING ----------
MadMax.exe+1F7D345: 48 FF CF - dec rdi
MadMax.exe+1F7D348: 79 C6 - jns MadMax.exe+1F7D310
MadMax.exe+1F7D34A: 8B 05 34 8F 87 FF - mov eax,[MadMax.exe+17F6284]
MadMax.exe+1F7D350: 4C 8D 44 24 70 - lea r8,[rsp+70]
MadMax.exe+1F7D355: 0F 28 CE - movaps xmm1,xmm6
MadMax.exe+1F7D358: 48 89 E9 - mov rcx,rbp
MadMax.exe+1F7D35B: 89 44 24 70 - mov [rsp+70],eax
MadMax.exe+1F7D35F: E8 6C CD DE FF - call MadMax.exe+1D6A0D0
MadMax.exe+1F7D364: 4C 8D 5C 24 60 - lea r11,[rsp+60]
MadMax.exe+1F7D369: 0F 28 7C 24 40 - movaps xmm7,[rsp+40]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>5</ID>
<Description>"Включить inf health "</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Byte</VariableType>
<Address>bHP</Address>
</CheatEntry>
<CheatEntry>
<ID>17071</ID>
<Description>"Включить игнорирование повреждений"</Description>
<Color>FFFFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : MadMax.exe
Version:
Date : 2021-01-23
Author : Shetal
}
[ENABLE]
aobscanmodule(godOverWR,$process,C6 83 E8 00 00 00 00 48 * * E8) // should be unique
alloc(newmem,$1000,godOverWR)
label(code)
label(return)
newmem:
mov [doGod],1
movss xmm6,[myFloat]
comiss xmm6,[rbx+20c]
jne code
mov byte ptr [rbx+000000E8],1
jmp return
code:
mov byte ptr [rbx+000000E8],00
jmp return
godOverWR-2:
db 90 90
godOverWR-b:
db 90 90
godOverWR:
jmp newmem
nop 2
return:
registersymbol(godOverWR)
[DISABLE]
doGod:
db 00
godOverWR:
db C6 83 E8 00 00 00 00
unregistersymbol(godOverWR)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: MadMax.exe+1D6A200
MadMax.exe+1D6A1CF: 44 8B 1F - mov r11d,[rdi]
MadMax.exe+1D6A1D2: 48 8B 03 - mov rax,[rbx]
MadMax.exe+1D6A1D5: 48 8D 94 24 88 00 00 00 - lea rdx,[rsp+00000088]
MadMax.exe+1D6A1DD: 48 89 D9 - mov rcx,rbx
MadMax.exe+1D6A1E0: 44 89 9C 24 88 00 00 00 - mov [rsp+00000088],r11d
MadMax.exe+1D6A1E8: FF 90 D8 00 00 00 - call qword ptr [rax+000000D8]
MadMax.exe+1D6A1EE: 80 BB E8 00 00 00 00 - cmp byte ptr [rbx+000000E8],00
MadMax.exe+1D6A1F5: 74 10 - je MadMax.exe+1D6A207
MadMax.exe+1D6A1F7: 0F 2F BB 84 01 00 00 - comiss xmm7,[rbx+00000184]
MadMax.exe+1D6A1FE: 73 07 - jae MadMax.exe+1D6A207
// ---------- INJECTING HERE ----------
MadMax.exe+1D6A200: C6 83 E8 00 00 00 00 - mov byte ptr [rbx+000000E8],00
// ---------- DONE INJECTING ----------
MadMax.exe+1D6A207: 48 89 D9 - mov rcx,rbx
MadMax.exe+1D6A20A: E8 C1 DA FF FF - call MadMax.exe+1D67CD0
MadMax.exe+1D6A20F: 48 8B 8B B8 01 00 00 - mov rcx,[rbx+000001B8]
MadMax.exe+1D6A216: 48 85 C9 - test rcx,rcx
MadMax.exe+1D6A219: 74 15 - je MadMax.exe+1D6A230
MadMax.exe+1D6A21B: F3 0F 10 8B 84 01 00 00 - movss xmm1,[rbx+00000184]
MadMax.exe+1D6A223: F3 0F 5E 8B 80 01 00 00 - divss xmm1,[rbx+00000180]
MadMax.exe+1D6A22B: E8 70 7D 13 01 - call MadMax.exe+2EA1FA0
MadMax.exe+1D6A230: 48 8B 9C 24 80 00 00 00 - mov rbx,[rsp+00000080]
MadMax.exe+1D6A238: 0F 28 74 24 60 - movaps xmm6,[rsp+60]
}
{
// ORIGINAL CODE - INJECTION POINT: "MadMax_GOG.exe"+1BE9D0
"MadMax_GOG.exe"+1BE99F: 44 8B 1F - mov r11d,[rdi]
"MadMax_GOG.exe"+1BE9A2: 48 8B 03 - mov rax,[rbx]
"MadMax_GOG.exe"+1BE9A5: 48 8D 94 24 88 00 00 00 - lea rdx,[rsp+00000088]
"MadMax_GOG.exe"+1BE9AD: 48 8B CB - mov rcx,rbx
"MadMax_GOG.exe"+1BE9B0: 44 89 9C 24 88 00 00 00 - mov [rsp+00000088],r11d
"MadMax_GOG.exe"+1BE9B8: FF 90 D8 00 00 00 - call qword ptr [rax+000000D8]
"MadMax_GOG.exe"+1BE9BE: 80 BB E8 00 00 00 00 - cmp byte ptr [rbx+000000E8],00
"MadMax_GOG.exe"+1BE9C5: 74 10 - je MadMax_GOG.exe+1BE9D7
"MadMax_GOG.exe"+1BE9C7: 0F 2F BB 84 01 00 00 - comiss xmm7,[rbx+00000184]
"MadMax_GOG.exe"+1BE9CE: 73 07 - jae MadMax_GOG.exe+1BE9D7
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+1BE9D0: C6 83 E8 00 00 00 00 - mov byte ptr [rbx+000000E8],00
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+1BE9D7: 48 8B CB - mov rcx,rbx
"MadMax_GOG.exe"+1BE9DA: E8 11 DC FF FF - call MadMax_GOG.exe+1BC5F0
"MadMax_GOG.exe"+1BE9DF: 48 8B 8B B8 01 00 00 - mov rcx,[rbx+000001B8]
"MadMax_GOG.exe"+1BE9E6: 48 85 C9 - test rcx,rcx
"MadMax_GOG.exe"+1BE9E9: 74 15 - je MadMax_GOG.exe+1BEA00
"MadMax_GOG.exe"+1BE9EB: F3 0F 10 8B 84 01 00 00 - movss xmm1,[rbx+00000184]
"MadMax_GOG.exe"+1BE9F3: F3 0F 5E 8B 80 01 00 00 - divss xmm1,[rbx+00000180]
"MadMax_GOG.exe"+1BE9FB: E8 70 84 13 00 - call MadMax_GOG.exe+2F6E70
"MadMax_GOG.exe"+1BEA00: 48 8B 9C 24 80 00 00 00 - mov rbx,[rsp+00000080]
"MadMax_GOG.exe"+1BEA08: 0F 28 74 24 60 - movaps xmm6,[rsp+60]
}
{
"MadMax_GOG.exe"+1BE9C7: 0F 2F BB 84 01 00 00 - comiss xmm7,[rbx+00000184]
"MadMax_GOG.exe"+1BE9CE: 73 07 - jae MadMax_GOG.exe+1BE9D7
// ---------- INJECTING HERE ----------
"MadMax_GOG.exe"+1BE9D0: C6 83 E8 00 00 00 00 - mov byte ptr [rbx+000000E8],00
// ---------- DONE INJECTING ----------
"MadMax_GOG.exe"+1BE9D7: 48 8B CB - mov rcx,rbx
"MadMax_GOG.exe"+1BE9DA: E8 11 DC FF FF - call MadMax_GOG.exe+1BC5F0
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17471</ID>
<Description>"Debug"</Description>
<Options moHideChildren="1"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>17433</ID>
<Description>"Пропустить выброс исключения (если хочешь отлаживать игру)."</Description>
<Color>808080</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,"KERNELBASE.dll"+43AC0)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
ret
originalcode:
sub rsp,000000D8
exit:
jmp returnhere
"KERNELBASE.dll"+43AC0:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"KERNELBASE.dll"+43AC0:
sub rsp,000000D8
//Alt: db 48 81 EC D8 00 00 00
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>17600</ID>
<Description>"Без описания."</Description>
<Color>808000</Color>
<VariableType>String</VariableType>
<Length>4</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>9C07C610</Address>
</CheatEntry>
</CheatEntries>
<CheatCodes>
<CodeEntry>
<Description>Code :movss [rax],xmm0 ammo refill time</Description>
<AddressString>MadMax.exe+1ED2874</AddressString>
<Before>
<Byte>F3</Byte>
<Byte>0F</Byte>
<Byte>10</Byte>
<Byte>45</Byte>
<Byte>50</Byte>
</Before>
<Actual>
<Byte>F3</Byte>
<Byte>0F</Byte>
<Byte>11</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>EB</Byte>
<Byte>09</Byte>
<Byte>4C</Byte>
<Byte>8D</Byte>
<Byte>45</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call qword ptr [rax] func caller</Description>
<AddressString>MadMax.exe+300B3E5</AddressString>
<Before>
<Byte>89</Byte>
<Byte>EA</Byte>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>D9</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>10</Byte>
</Actual>
<After>
<Byte>83</Byte>
<Byte>F8</Byte>
<Byte>01</Byte>
<Byte>74</Byte>
<Byte>1B</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :lea rdx,[14126D578]</Description>
<AddressString>MadMax.exe+1E73073</AddressString>
<Before>
<Byte>05</Byte>
<Byte>AD</Byte>
<Byte>22</Byte>
<Byte>03</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>48</Byte>
<Byte>8D</Byte>
<Byte>15</Byte>
<Byte>FE</Byte>
<Byte>A4</Byte>
<Byte>3F</Byte>
<Byte>FF</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>D9</Byte>
<Byte>E8</Byte>
<Byte>6E</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :lea rdx,[14126F5B0]</Description>
<AddressString>MadMax.exe+1E7133B</AddressString>
<Before>
<Byte>05</Byte>
<Byte>05</Byte>
<Byte>B4</Byte>
<Byte>04</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>48</Byte>
<Byte>8D</Byte>
<Byte>15</Byte>
<Byte>6E</Byte>
<Byte>E2</Byte>
<Byte>3F</Byte>
<Byte>FF</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>D9</Byte>
<Byte>E8</Byte>
<Byte>A6</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :lea r8,[141EA5320]</Description>
<AddressString>MadMax.exe+1E7306C</AddressString>
<Before>
<Byte>E8</Byte>
<Byte>84</Byte>
<Byte>AA</Byte>
<Byte>19</Byte>
<Byte>01</Byte>
</Before>
<Actual>
<Byte>4C</Byte>
<Byte>8D</Byte>
<Byte>05</Byte>
<Byte>AD</Byte>
<Byte>22</Byte>
<Byte>03</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>8D</Byte>
<Byte>15</Byte>
<Byte>FE</Byte>
<Byte>A4</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call qword ptr [rax] another func caller?</Description>
<AddressString>MadMax.exe+300B038</AddressString>
<Before>
<Byte>89</Byte>
<Byte>DA</Byte>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>F9</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>10</Byte>
</Actual>
<After>
<Byte>83</Byte>
<Byte>F8</Byte>
<Byte>01</Byte>
<Byte>75</Byte>
<Byte>12</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call qword ptr [rax+60] func caller</Description>
<AddressString>MadMax.exe+22D08FE</AddressString>
<Before>
<Byte>8B</Byte>
<Byte>09</Byte>
<Byte>48</Byte>
<Byte>8B</Byte>
<Byte>01</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>50</Byte>
<Byte>60</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>8B</Byte>
<Byte>0B</Byte>
<Byte>48</Byte>
<Byte>85</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call rax caller</Description>
<AddressString>MadMax.exe+2422458</AddressString>
<Before>
<Byte>01</Byte>
<Byte>00</Byte>
<Byte>4C</Byte>
<Byte>89</Byte>
<Byte>EA</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>D0</Byte>
</Actual>
<After>
<Byte>84</Byte>
<Byte>C0</Byte>
<Byte>75</Byte>
<Byte>0B</Byte>
<Byte>0F</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call qword ptr [rax+00000080] caller</Description>
<AddressString>MadMax.exe+1FA5A79</AddressString>
<Before>
<Byte>8B</Byte>
<Byte>01</Byte>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>DA</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>90</Byte>
<Byte>80</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>40</Byte>
<Byte>38</Byte>
<Byte>3D</Byte>
<Byte>9C</Byte>
<Byte>80</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call qword ptr [rax+10] caller</Description>
<AddressString>MadMax.exe+1FC8775</AddressString>
<Before>
<Byte>8B</Byte>
<Byte>03</Byte>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>D9</Byte>
</Before>
<Actual>
<Byte>FF</Byte>
<Byte>50</Byte>
<Byte>10</Byte>
</Actual>
<After>
<Byte>E8</Byte>
<Byte>C3</Byte>
<Byte>86</Byte>
<Byte>59</Byte>
<Byte>00</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :lea rcx,[1412EB7A0]</Description>
<AddressString>MadMax.exe+22C62BC</AddressString>
<Before>
<Byte>00</Byte>
<Byte>84</Byte>
<Byte>C0</Byte>
<Byte>74</Byte>
<Byte>0C</Byte>
</Before>
<Actual>
<Byte>48</Byte>
<Byte>8D</Byte>
<Byte>0D</Byte>
<Byte>DD</Byte>
<Byte>54</Byte>
<Byte>02</Byte>
<Byte>FF</Byte>
</Actual>
<After>
<Byte>E8</Byte>
<Byte>68</Byte>
<Byte>E6</Byte>
<Byte>8A</Byte>
<Byte>FF</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :mov [rsp+08],rbx call using special cam </Description>
<AddressString>MadMax.exe+22C8740</AddressString>
<Before>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>5C</Byte>
<Byte>24</Byte>
<Byte>08</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>6C</Byte>
<Byte>24</Byte>
<Byte>10</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :push rbx ply environment damage</Description>
<AddressString>MadMax.exe+2109A00</AddressString>
<Before>
<Byte>80</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>53</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>83</Byte>
<Byte>EC</Byte>
<Byte>20</Byte>
<Byte>48</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :push r12 veh_enem_drv</Description>
<AddressString>MadMax.exe+1EC9970</AddressString>
<Before>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>41</Byte>
<Byte>54</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>83</Byte>
<Byte>EC</Byte>
<Byte>40</Byte>
<Byte>48</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :lea r8,[MadMax.exe+1250B78] .xnmc</Description>
<AddressString>MadMax.exe+1F4AD76</AddressString>
<Before>
<Byte>84</Byte>
<Byte>61</Byte>
<Byte>01</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>4C</Byte>
<Byte>8D</Byte>
<Byte>05</Byte>
<Byte>FB</Byte>
<Byte>5D</Byte>
<Byte>30</Byte>
<Byte>FF</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>8D</Byte>
<Byte>55</Byte>
<Byte>CF</Byte>
<Byte>48</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :mov [rsp+08],rbx getaplayer?</Description>
<AddressString>MadMax.exe+20A5E30</AddressString>
<Before>
<Byte>00</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
<Byte>CC</Byte>
</Before>
<Actual>
<Byte>48</Byte>
<Byte>89</Byte>
<Byte>5C</Byte>
<Byte>24</Byte>
<Byte>08</Byte>
</Actual>
<After>
<Byte>57</Byte>
<Byte>48</Byte>
<Byte>83</Byte>
<Byte>EC</Byte>
<Byte>30</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :movzx eax,byte ptr [rax+000000E9] accesss all veh god flag</Description>
<AddressString>MadMax.exe+213F0BF</AddressString>
<Before>
<Byte>48</Byte>
<Byte>85</Byte>
<Byte>C0</Byte>
<Byte>74</Byte>
<Byte>19</Byte>
</Before>
<Actual>
<Byte>0F</Byte>
<Byte>B6</Byte>
<Byte>80</Byte>
<Byte>E9</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>66</Byte>
<Byte>0F</Byte>
<Byte>6E</Byte>
<Byte>C8</Byte>
<Byte>0F</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Change of mov [r11+000000E9],al</Description>
<AddressString>MadMax_GOG.exe+4C6AA3</AddressString>
<Before>
<Byte>05</Byte>
<Byte>D5</Byte>
<Byte>8C</Byte>
<Byte>25</Byte>
<Byte>01</Byte>
</Before>
<Actual>
<Byte>41</Byte>
<Byte>88</Byte>
<Byte>83</Byte>
<Byte>E9</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>83</Byte>
<Byte>C4</Byte>
<Byte>20</Byte>
<Byte>5B</Byte>
</After>
</CodeEntry>
<CodeEntry>
<Description>Code :call MadMax.exe+2992E20 challenge. xmm1 holds the value</Description>
<AddressString>MadMax.exe+2418040</AddressString>
<Before>
<Byte>24</Byte>
<Byte>98</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Before>
<Actual>
<Byte>E8</Byte>
<Byte>DB</Byte>
<Byte>AD</Byte>
<Byte>57</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>48</Byte>
<Byte>8B</Byte>
<Byte>47</Byte>
<Byte>10</Byte>
<Byte>48</Byte>
</After>
</CodeEntry>
</CheatCodes>
<UserdefinedSymbols>
<SymbolEntry>
<Name>hCode1</Name>
<Address>13FF80000</Address>
</SymbolEntry>
</UserdefinedSymbols>
<DisassemblerComments>
<DisassemblerComment>
<Address>"MadMax.exe"+1C91250</Address>
<Comment>CcharacterMangr
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1C9125C</Address>
<Comment>Ccharacter
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1E8A730</Address>
<Comment>CharacterIsVehicleDriver
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1E9AFA0</Address>
<Comment>GuiMsg
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EA2320</Address>
<Comment>isPlayerVeh (two arg)
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EA25A0</Address>
<Comment>set health mode
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EA26D0</Address>
<Comment>get player character
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EA50B0</Address>
<Comment>give item
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EAFBB0</Address>
<Comment>unlock race trophy
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EAFEE0</Address>
<Comment>is race trophy awarder
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EB2CD0</Address>
<Comment>discover map icon
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EB8E20</Address>
<Comment>set gamne speed
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EB9290</Address>
<Comment>set time
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC1210</Address>
<Comment>in storm area
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC2020</Address>
<Comment>storm
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC2079</Address>
<Comment>***
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC2087</Address>
<Comment>jumps in custom call
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC212F</Address>
<Comment>jumps on success storm
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC266D</Address>
<Comment>jump on real storm
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC2810</Address>
<Comment>jump on real storm
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC91D0</Address>
<Comment>teleport
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1EC9970</Address>
<Comment>VehicleHasEnemyDriver
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1ED1D80</Address>
<Comment>teleport with load
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+1ED5A50</Address>
<Comment>XVM call
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+20A5E47</Address>
<Comment>get PTRs
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+20C99A0</Address>
<Comment>inv item
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+20C9AE0</Address>
<Comment>ammo
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+20CB7A0</Address>
<Comment>ininvuln
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+213D8E0</Address>
<Comment>IsPlayerVehicle (three arg)
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+2193C8E</Address>
<Comment>time speed mul
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+22C5C90</Address>
<Comment>includes teleport to camera
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+22C8740</Address>
<Comment>rcx = Cspecailcam
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+22C8866</Address>
<Comment>tele to cam
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+300AB0B</Address>
<Comment>*****
</Comment>
</DisassemblerComment>
<DisassemblerComment>
<Address>"MadMax.exe"+300B908</Address>
<Comment>***
</Comment>
</DisassemblerComment>
</DisassemblerComments>
</CheatTable>