34
"[X] <== Ashes of the Singularity - Escalation GOLD v2.60 DX12 Script v2.1 AOB"
FF0000
Auto Assembler Script
{
===========================================
Game Title : Ashes of the Singularity - Escalation GOLD
Game Version : 2.65.30104 (steam)
Game Sponsor : PATRONS
Process Name : AshesEscalation_DX12.exe
Relevant Info : 64bits/RTS/Machine Killer :)
Script Version: 2.1
CE Version : 6.7
Release date : 19-Dec-2017
Author : Recifense
History:
16-Apr-2017: First Release
25-Aug-2017: Release for version 2.40 GOLD DX11 (Steam) (s2.0)
31-Aug-2017: Release for version 2.40 GOLD DX12 (Steam) (s2.1)
15-Sep-2017: Release for version 2.50 GOLD DX12
03-Oct-2017: Release for version 2.60 GOLD DX12
19-Dec-2017: Release for version 2.65 GOLD DX12
Features:
- Minimum resources
- God Mode
- Quick Construction
- Quick Production
- Quick Level Up
- Some Pointers
===========================================
}
//=========================================
// Checking CE version
{$lua}
if(getCEVersion() < 6.7) then
ShowMessage('Sorry. CE version should be 6.7 or above')
end
{$asm}
//=========================================
// Checking Selected Process
{$lua}
if(process == nil) then
ShowMessage('No process was selected')
elseif (process ~= "AshesEscalation_DX12.exe") then
ShowMessage('Error. Expected Process = AshesEscalation_DX12.exe')
end
{$asm}
//=========================================
// Definitions
define(LUDO,$process)
//=========================================
// Constants used in the script (that can be changed)
define(ctCE67,(float)6.70)
define(ctPROG,(float)0.90) // progress
//=========================================
[ENABLE]
//=========================================
//LuaCall(CheckVersion())
//=========================================
// Check if script is compatible to this game version
// If false the script will not be loaded
AOBScanModule(MOPR,$process,0f 28 c2 f3 0f 58 01 f3 0f 58 91 30 03 00 00 f3 0f 11 01 f3 0f 10 41 0c)
AOBScanModule(GDMD,$process,f3 0f 11 43 24 48 83 c4 20 5b c3 cc cc cc ?? ?? ?? ?? ?? ?? ??)
AOBScanModule(GMD2,$process,f3 0f 11 9b 94 00 00 00 0f 2f f1 ?? ?? 0f 57 f6 f3 0f 11 73 68)
AOBScanModule(GMD3,$process,f3 0f 10 41 24 f3 0f 11 59 2c f3 0f 5c c4 f3 0f 11 41 24 c3 cc)
AOBScanModule(MOCP,$process,f3 0f 11 77 74 ?? ?? c7 47 74 00 00 80 3f ?? ?? 0f 82 ?? ?? ?? ??)
AOBScanModule(MOPP,$process,48 c1 e2 06 89 4c 02 30 8b 46 28 0f ba e0 19 ?? ?? 0f ba e8 19)
AOBScanModule(MOUX,$process,89 97 d4 00 00 00 66 90 ff c1 41 3b 94 89 a0 2c 5c 00 0f 82 ?? ?? ?? ??)
AOBScanModule(MUX1,$process,41 8b c2 66 90 ff c1 8b d0 45 3b 84 89 b8 2c 5c 00 ?? ?? 89 8f d8 00 00)
//=========================================
alloc(MyCode,4096,$process)
//=========================================
// Declaration section
label(_MonPlayerResources)
label(_BackMPR)
label(_GodMode)
label(_BackGMD)
label(_GodMode2)
label(_BackGM2)
label(_GodMode3)
label(_BackGM3)
label(_MonConstProg)
label(_BackMCP)
label(_MonProdProg)
label(_BackMPP)
label(_MonUnitXP)
label(_BackMUX)
label(_MonUnitXP1)
label(_BackUX1)
label(iEnableMPR)
label(iEnableGMD)
label(iEnableMCP)
label(iEnableMPP)
label(iEnableMUX)
label(fAux)
label(pRes)
label(pUnit)
label(pBuilding)
//=========================================
// Registering Symbols
registersymbol(MyCode)
registersymbol(iEnableMPR)
registersymbol(iEnableGMD)
registersymbol(iEnableMCP)
registersymbol(iEnableMPP)
registersymbol(iEnableMUX)
registersymbol(pRes)
registersymbol(pUnit)
registersymbol(pBuilding)
registersymbol(MOPR)
registersymbol(GDMD)
registersymbol(GMD2)
registersymbol(GMD3)
registersymbol(MOCP)
registersymbol(MOPP)
registersymbol(MOUX)
registersymbol(MUX1)
//=========================================
MyCode:
//========================================= 2.40 S *
// While playing a match
_MonPlayerResources:
mov [qRAX],rax
cmp dword ptr [rcx+00000358],00
jne _ExitMPR
mov [pRes],rcx
cmp dword ptr [iEnableMPR],0
je _ExitMPR // Jump if feature is disabled
movss xmm0,[fMinQuanta]
mov eax,[rcx+0c]
cmp eax,70000000
jns _MonR0M
movss xmm0,[rcx+0c]
_MonR0M:
subss xmm0,[fResDelta]
comiss xmm0,[rcx]
jc _MonPR00
subss xmm0,[rcx]
comiss xmm0,xmm2
jc _MonPR00
movaps xmm2,xmm0
_MonPR00:
cmp dword ptr [rcx+04],00
je _MonPR01
movss xmm0,[fMinQuanta]
mov eax,[rcx+0c]
cmp eax,70000000
jns _MonR0E
movss xmm0,[rcx+0c]
_MonR0E:
subss xmm0,[fResDelta]
comiss xmm0,[rcx+04]
jc _MonPR01
subss xmm0,[rcx+04]
movss [fAux],xmm0
addss xmm0,[rcx+04]
movss [rcx+04],xmm0
movss xmm0,[fAux]
addss xmm0,[rcx+0000033c]
movss [rcx+0000033c],xmm0
_MonPR01:
cmp dword ptr [rcx+08],00
je _ExitMPR
movss xmm0,[fMinQuanta]
comiss xmm0,[rcx+08]
jc _ExitMPR
movss [rcx+08],xmm0
_ExitMPR:
mov rax,[qRAX]
movaps xmm0,xmm2 // Original code (Value to be added)
addss xmm0,[rcx] // Original code (Total Available)
jmp _BackMPR // Back to main code
//========================================= 2.40
// During Combat (UNIT)
_GodMode:
cmp dword ptr [iEnableGMD],0
je _ExitGMD // Jump if feature is disabled
cmp word ptr [rbx+38],0
jne _ExitGMD
cvtsi2ss xmm0,dword ptr [rbx+000000e8]
_ExitGMD:
movss [rbx+24],xmm0 // Original code (set fcHP)
jmp _BackGMD // Back to main code
//========================================= 2.20 nhp ok
// During Combat (BUILDING)
_GodMode2:
cmp dword ptr [iEnableGMD],0
je _ExitGM2 // Jump if feature is disabled
cmp dword ptr [rbx+50],00
jne _ExitGM2
movss xmm6,[rbx+68]
_ExitGM2:
movss [rbx+00000094],xmm3 // Original code
jmp _BackGM2 // Back to main code
//========================================= 2.20 nhp ok
// During Combat (UNIT)
_GodMode3:
cmp dword ptr [iEnableGMD],0
je _ExitGM3 // Jump if feature is disabled
cmp word ptr [rcx+38],0
jne _ExitGM3
movss xmm3,[rcx+2c]
xorps xmm4,xmm4
_ExitGM3:
movss xmm0,[rcx+24] // Original code
jmp _BackGM3 // Back to main code
//========================================= 2.20 ok
// When constructing a BUILDING (start prog at 90%)
_MonConstProg:
pushfq
movss [rdi+74],xmm6 // Original code (set prog)
cmp dword ptr [rdi+74],00
je _ExitMCP
cmp dword ptr [iEnableMCP],0
je _ExitMCP // Jump if feature is disabled
cmp dword ptr [rdi+50],00
jne _ExitMCP
cmp dword ptr [rdi+74],ctPROG
jns _ExitMCP
mov dword ptr [rdi+74],ctPROG
_ExitMCP:
popfq
jmp _BackMCP // Back to main code
//========================================= 2.20 ok
// When producing a UNIT (start prog at 90%)
_MonProdProg:
shl rdx,06 // Original code (adjusting offset)
test ecx,ecx
jz _ExitMPP
cmp dword ptr [iEnableMPP],0
je _ExitMPP // Jump if feature is disabled
cmp word ptr [rdx+rax+38],0
jne _ExitMPP
cmp ecx,ctPROG
jns _ExitMPP
mov ecx,ctPROG
mov [rdi],ecx
_ExitMPP:
mov [rdx+rax+30],ecx // Original code (set prog)
jmp _BackMPP // Back to main code
//========================================= 2.65 * DX12
// When increasing XP (dreadnoughts)
_MonUnitXP:
inc ecx // Adjust ECX
cmp dword ptr [iEnableMUX],0
je _ExitMUX // Jump if feature is disabled
cmp word ptr [rdi+38],0
jne _ExitMUX
cmp edx,[r9+rcx*4+005c2ca0]
jns _ExitMUX
mov edx,[r9+rcx*4+005c2ca0]
_ExitMUX:
dec ecx // Recover ECX
mov [rdi+000000D4],edx // Original code (upd XP)
jmp _BackMUX // Back to main code
//========================================= 2.65 * DX12
// When increasing XP (heavy dreadnoughts)
_MonUnitXP1:
inc ecx // Adjust ECX
cmp dword ptr [iEnableMUX],0
je _ExitUX1 // Jump if feature is disabled
cmp word ptr [rdi+38],0
jne _ExitUX1
cmp r8d,[r9+rcx*4+005c2cb8]
jns _ExitUX1
mov r8d,[r9+rcx*4+005c2cb8]
mov [rdi+000000d4],r8d
_ExitUX1:
dec ecx // Recover ECX
mov eax,r10d // Original code
nop // Original code
nop // Original code
jmp _BackUX1 // Back to main code
//=========================================
align 10,'='
//=========================================
db '===============================>'
db 'CE6.7 Script by Recifense 171219'
//=========================================
// Variables
iEnableMPR:
dd 0
iEnableGMD:
dd 0
iEnableMCP:
dd 0
iEnableMPP:
dd 0
iEnableMUX:
dd 0
dd 0
fResDelta:
dd (float)100.0
fMinQuanta:
dd (float)1670.0
fAux:
dq 0
qRAX:
dq 0
pRes:
dq 0
pUnit:
dq 0
pBuilding:
dq 0
//=========================================
// Hacking Points
MOPR:
jmp _MonPlayerResources
nop
nop
_BackMPR:
GDMD:
jmp _GodMode
_BackGMD:
GMD2:
jmp _GodMode2
nop
nop
nop
_BackGM2:
GMD3:
jmp _GodMode3
_BackGM3:
MOCP:
jmp _MonConstProg
_BackMCP:
MOPP:
jmp _MonProdProg
nop
nop
nop
_BackMPP:
MOUX:
jmp _MonUnitXP
nop
_BackMUX:
MUX1:
jmp _MonUnitXP1
_BackUX1:
//=========================================
// Script for Restoring Original Codes
[DISABLE]
MOPR:
// movaps xmm0,xmm2
// addss xmm0,[rcx]
db 0f 28 c2 f3 0f 58 01
GDMD:
// movss [rbx+24],xmm0
db f3 0f 11 43 24
GMD2:
// movss [rbx+00000094],xmm3
db f3 0f 11 9b 94 00 00 00
GMD3:
// movss xmm0,[rcx+24]
db f3 0f 10 41 24
MOCP:
// movss [rdi+74],xmm6
db f3 0f 11 77 74
MOPP:
// shl rdx,06
// mov [rdx+rax+30],ecx
db 48 c1 e2 06 89 4c 02 30
MOUX:
// mov [rdi+000000D4],edx
db 89 97 d4 00 00 00
MUX1:
// mov eax,r10d
// nop (x2)
db 41 8b c2 66 90
//=========================================
// Unregistering Symbols
unregistersymbol(MyCode)
unregistersymbol(iEnableMPR)
unregistersymbol(iEnableGMD)
unregistersymbol(iEnableMCP)
unregistersymbol(iEnableMPP)
unregistersymbol(iEnableMUX)
unregistersymbol(pRes)
unregistersymbol(pUnit)
unregistersymbol(pBuilding)
unregistersymbol(MOPR)
unregistersymbol(MOSU)
unregistersymbol(MOSB)
unregistersymbol(MSB2)
unregistersymbol(GDMD)
unregistersymbol(GMD2)
unregistersymbol(GMD3)
unregistersymbol(MOCP)
unregistersymbol(MOPP)
unregistersymbol(MOUX)
unregistersymbol(MUX1)
//=========================================
dealloc(MyCode)
//============= Scripts End ===============
// ****************************************
// NOTES
// ****************************************
{
}
96
"[X] <== God Mode -----------------> (HK: CTRL+Home / CTRL+End)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableGMD",1)
getAddressList().getMemoryRecordByID(96).Color=0x0008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableGMD",0)
getAddressList().getMemoryRecordByID(96).Color=0x0c08000
{$ASM}
Activate
17
36
0
Deactivate
17
35
1
139
"[X] <== Minimum Resources ------> (HK: CTRL+Page Up / CTRL+Page Down)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMPR",1)
getAddressList().getMemoryRecordByID(139).Color=0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPR",0)
getAddressList().getMemoryRecordByID(139).Color=0x00c08000
{$ASM}
Activate
17
33
0
Deactivate
17
34
1
147
"[X] <== Quick Construction -------> (HK: CTRL+Insert / CTRL+Delete)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMCP",1)
getAddressList().getMemoryRecordByID(147).Color=0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMCP",0)
getAddressList().getMemoryRecordByID(147).Color=0x00c08000
{$ASM}
Activate
17
45
0
Deactivate
17
46
1
229
"[X] <== Quick Production ----------> (HK: CTRL+Insert / CTRL+Delete)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMPP",1)
getAddressList().getMemoryRecordByID(229).Color=0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMPP",0)
getAddressList().getMemoryRecordByID(229).Color=0x00c08000
{$ASM}
Activate
17
45
0
Deactivate
17
46
1
230
"[X] <== Quick Level Up ------------> (HK: CTRL+Insert / CTRL+Delete)"
C08000
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
writeInteger("iEnableMUX",1)
getAddressList().getMemoryRecordByID(230).Color=0x00008000
{$ASM}
[disable]
{$LUA}
writeInteger("iEnableMUX",0)
getAddressList().getMemoryRecordByID(230).Color=0x00c08000
{$ASM}
Activate
17
45
0
Deactivate
17
46
1
228
"[X] <== Table/Script Information"
0000FF
Auto Assembler Script
[enable]
define(test,LUDO)
{$LUA}
getMainForm().CommentButton.doClick()
{$ASM}
[disable]
Recifense
20171219
===========================================
Game Title : Ashes of the Singularity - Escalation GOLD
Game Version : 2.65.30104 (steam)
Game Sponsor : PATRONS
Process Name : AshesEscalation_DX12.exe
Relevant Info : 64bits/RTS/Machine Killer :)
Script Version: 2.1
CE Version : 6.7
Release date : 19-Dec-2017
Author : Recifense
History:
16-Apr-2017: First Release
25-Aug-2017: Release for version 2.40 GOLD DX11 (Steam) (s2.0)
31-Aug-2017: Release for version 2.40 GOLD DX12 (Steam) (s2.1)
15-Sep-2017: Release for version 2.50 GOLD DX12
03-Oct-2017: Release for version 2.60 GOLD DX12
19-Dec-2017: Release for version 2.65 GOLD DX12
Features:
- Minimum Resources [1]
- God Mode [2]
- Quick Construction [3]
- Quick Production [4]
- Quick Level Up [5]
- Some Pointers [6]
===========================================
[1] For human player only: (Max-100) or 670;
[2] For human player's Units and Buildings;
[3] Human player's constructions will start at 90%;
[4] Human player's unit production will start at 90%;
[5] Human player's dreadnoughts will quickly Level Up;
[6] For debugging
===========================================
[USAGE]
1) Run CE67 or greater;
2) Run Game;
3) Load the game process "AshesEscalation_DX12.exe" in CE;
4) Load this table and activate the main script;
5) Now Activate the script of each cheat you want to use;
6) Game On;
===========================================
[HOTKEYS]
- See description on the table entries;
===========================================
[ADVICE]
When you can,save the game before starting using table/cheat. So you can always come back in case you don't like the result.
===========================================
[INFO]
Tested on Win 10 64bits
===========================================
Cheers!