<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="34">
<CheatEntries>
<CheatEntry>
<ID>16</ID>
<Description>"Free Build"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-19
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(freeBuild,nebuchadnezzar.exe,41 2B 84 24 90 01 00 00)
registersymbol(freeBuild)
freeBuild:
nop 8
[DISABLE]
freeBuild:
db 41 2B 84 24 90 01 00 00
unregistersymbol(freeBuild)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+695F72
nebuchadnezzar.exe+695F13: 49 8B 95 C0 00 00 00 - mov rdx,[r13+000000C0]
nebuchadnezzar.exe+695F1A: 48 8B 0D 27 6D 16 00 - mov rcx,[nebuchadnezzar.exe+7FCC48]
nebuchadnezzar.exe+695F21: E8 5A 9D FF FF - call nebuchadnezzar.exe+68FC80
nebuchadnezzar.exe+695F26: 48 8B 08 - mov rcx,[rax]
nebuchadnezzar.exe+695F29: 40 38 B1 40 01 00 00 - cmp [rcx+00000140],sil
nebuchadnezzar.exe+695F30: 74 15 - je nebuchadnezzar.exe+695F47
nebuchadnezzar.exe+695F32: 41 FF C7 - inc r15d
nebuchadnezzar.exe+695F35: 41 83 FF 04 - cmp r15d,04
nebuchadnezzar.exe+695F39: 7C D5 - jl nebuchadnezzar.exe+695F10
nebuchadnezzar.exe+695F3B: 49 8D 8E C0 1F 00 00 - lea rcx,[r14+00001FC0]
nebuchadnezzar.exe+695F42: E8 39 79 F5 FF - call nebuchadnezzar.exe+5ED880
nebuchadnezzar.exe+695F47: 48 83 C3 08 - add rbx,08
nebuchadnezzar.exe+695F4B: 48 3B DF - cmp rbx,rdi
nebuchadnezzar.exe+695F4E: 0F 85 5C FF FF FF - jne nebuchadnezzar.exe+695EB0
nebuchadnezzar.exe+695F54: 48 8B 74 24 60 - mov rsi,[rsp+60]
nebuchadnezzar.exe+695F59: 44 8B 7C 24 30 - mov r15d,[rsp+30]
nebuchadnezzar.exe+695F5E: 45 33 ED - xor r13d,r13d
nebuchadnezzar.exe+695F61: 49 83 BE B0 20 00 00 00 - cmp qword ptr [r14+000020B0],00
nebuchadnezzar.exe+695F69: 74 68 - je nebuchadnezzar.exe+695FD3
nebuchadnezzar.exe+695F6B: 41 8B 86 DC 14 00 00 - mov eax,[r14+000014DC]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+695F72: 41 2B 84 24 90 01 00 00 - sub eax,[r12+00000190]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+695F7A: 41 89 86 DC 14 00 00 - mov [r14+000014DC],eax
nebuchadnezzar.exe+695F81: 48 8B 0D C0 6C 16 00 - mov rcx,[nebuchadnezzar.exe+7FCC48]
nebuchadnezzar.exe+695F88: 80 B9 A8 21 00 00 00 - cmp byte ptr [rcx+000021A8],00
nebuchadnezzar.exe+695F8F: 75 42 - jne nebuchadnezzar.exe+695FD3
nebuchadnezzar.exe+695F91: 85 C0 - test eax,eax
nebuchadnezzar.exe+695F93: 79 3E - jns nebuchadnezzar.exe+695FD3
nebuchadnezzar.exe+695F95: 48 8B 81 A0 21 00 00 - mov rax,[rcx+000021A0]
nebuchadnezzar.exe+695F9C: 4C 8B 90 10 02 00 00 - mov r10,[rax+00000210]
nebuchadnezzar.exe+695FA3: 48 8B 90 18 02 00 00 - mov rdx,[rax+00000218]
nebuchadnezzar.exe+695FAA: 49 2B D2 - sub rdx,r10
nebuchadnezzar.exe+695FAD: 48 C1 FA 03 - sar rdx,03
nebuchadnezzar.exe+695FB1: 49 63 86 A8 1D 00 00 - movsxd rax,dword ptr [r14+00001DA8]
nebuchadnezzar.exe+695FB8: 3B C2 - cmp eax,edx
nebuchadnezzar.exe+695FBA: 7D 17 - jnl nebuchadnezzar.exe+695FD3
nebuchadnezzar.exe+695FBC: 45 33 C9 - xor r9d,r9d
nebuchadnezzar.exe+695FBF: 45 8D 41 05 - lea r8d,[r9+05]
nebuchadnezzar.exe+695FC3: 49 8B 14 C2 - mov rdx,[r10+rax*8]
nebuchadnezzar.exe+695FC7: E8 84 B2 FF FF - call nebuchadnezzar.exe+691250
nebuchadnezzar.exe+695FCC: 41 FF 86 A8 1D 00 00 - inc [r14+00001DA8]
nebuchadnezzar.exe+695FD3: 4D 8D 8E B8 00 00 00 - lea r9,[r14+000000B8]
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>50</ID>
<Description>"Inf Building Resources"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-19
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(infResources,nebuchadnezzar.exe,41 FF 0C 00 48 8B 86 C8 00 00 00)
registersymbol(infResources)
infResources:
nop 4
[DISABLE]
infResources:
db 41 FF 0C 00
unregistersymbol(infResources)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+667BFA
nebuchadnezzar.exe+667BB9: CC - int 3
nebuchadnezzar.exe+667BBA: CC - int 3
nebuchadnezzar.exe+667BBB: CC - int 3
nebuchadnezzar.exe+667BBC: CC - int 3
nebuchadnezzar.exe+667BBD: CC - int 3
nebuchadnezzar.exe+667BBE: CC - int 3
nebuchadnezzar.exe+667BBF: CC - int 3
nebuchadnezzar.exe+667BC0: 48 89 5C 24 18 - mov [rsp+18],rbx
nebuchadnezzar.exe+667BC5: 48 89 74 24 20 - mov [rsp+20],rsi
nebuchadnezzar.exe+667BCA: 57 - push rdi
nebuchadnezzar.exe+667BCB: 48 81 EC 90 00 00 00 - sub rsp,00000090
nebuchadnezzar.exe+667BD2: 48 63 DA - movsxd rbx,edx
nebuchadnezzar.exe+667BD5: 48 8B F1 - mov rsi,rcx
nebuchadnezzar.exe+667BD8: 48 8B 01 - mov rax,[rcx]
nebuchadnezzar.exe+667BDB: 8B D3 - mov edx,ebx
nebuchadnezzar.exe+667BDD: FF 90 88 00 00 00 - call qword ptr [rax+00000088]
nebuchadnezzar.exe+667BE3: 84 C0 - test al,al
nebuchadnezzar.exe+667BE5: 0F 84 A4 00 00 00 - je nebuchadnezzar.exe+667C8F
nebuchadnezzar.exe+667BEB: 4C 8D 04 9D 00 00 00 00 - lea r8,[rbx*4+00000000]
nebuchadnezzar.exe+667BF3: 48 8B 86 98 00 00 00 - mov rax,[rsi+00000098]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+667BFA: 41 FF 0C 00 - dec [r8+rax]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+667BFE: 48 8B 86 C8 00 00 00 - mov rax,[rsi+000000C8]
nebuchadnezzar.exe+667C05: 48 8B 8E B0 00 00 00 - mov rcx,[rsi+000000B0]
nebuchadnezzar.exe+667C0C: 42 8B 14 01 - mov edx,[rcx+r8]
nebuchadnezzar.exe+667C10: 42 2B 14 00 - sub edx,[rax+r8]
nebuchadnezzar.exe+667C14: FF CA - dec edx
nebuchadnezzar.exe+667C16: 48 8B 86 98 00 00 00 - mov rax,[rsi+00000098]
nebuchadnezzar.exe+667C1D: 41 39 14 00 - cmp [r8+rax],edx
nebuchadnezzar.exe+667C21: 75 57 - jne nebuchadnezzar.exe+667C7A
nebuchadnezzar.exe+667C23: B2 01 - mov dl,01
nebuchadnezzar.exe+667C25: 48 8B CE - mov rcx,rsi
nebuchadnezzar.exe+667C28: E8 23 11 00 00 - call nebuchadnezzar.exe+668D50
nebuchadnezzar.exe+667C2D: 48 8B BE 48 02 00 00 - mov rdi,[rsi+00000248]
nebuchadnezzar.exe+667C34: 48 8B 9E 40 02 00 00 - mov rbx,[rsi+00000240]
nebuchadnezzar.exe+667C3B: 48 3B DF - cmp rbx,rdi
nebuchadnezzar.exe+667C3E: 74 3A - je nebuchadnezzar.exe+667C7A
nebuchadnezzar.exe+667C40: 81 3B FF FF FF 1F - cmp [rbx],1FFFFFFF
nebuchadnezzar.exe+667C46: 7D 29 - jnl nebuchadnezzar.exe+667C71
nebuchadnezzar.exe+667C48: C7 44 24 20 03 00 00 00 - mov [rsp+20],00000003
nebuchadnezzar.exe+667C50: 48 8B 06 - mov rax,[rsi]
nebuchadnezzar.exe+667C53: 48 8B CE - mov rcx,rsi
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>153</ID>
<Description>"Inf Warehouse Resources"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-20
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(infWarehouse,nebuchadnezzar.exe,41 FF 0C 01 48 8B 83 B0 00 00 00)
registersymbol(infWarehouse)
infWarehouse:
nop 4
[DISABLE]
infWarehouse:
db 41 FF 0C 01
unregistersymbol(infWarehouse)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+5E2DF7
nebuchadnezzar.exe+5E2DAB: CC - int 3
nebuchadnezzar.exe+5E2DAC: CC - int 3
nebuchadnezzar.exe+5E2DAD: CC - int 3
nebuchadnezzar.exe+5E2DAE: CC - int 3
nebuchadnezzar.exe+5E2DAF: CC - int 3
nebuchadnezzar.exe+5E2DB0: 48 89 5C 24 18 - mov [rsp+18],rbx
nebuchadnezzar.exe+5E2DB5: 57 - push rdi
nebuchadnezzar.exe+5E2DB6: 48 81 EC 90 00 00 00 - sub rsp,00000090
nebuchadnezzar.exe+5E2DBD: 48 8B 05 64 A2 20 00 - mov rax,[nebuchadnezzar.exe+7ED028]
nebuchadnezzar.exe+5E2DC4: 48 33 C4 - xor rax,rsp
nebuchadnezzar.exe+5E2DC7: 48 89 84 24 88 00 00 00 - mov [rsp+00000088],rax
nebuchadnezzar.exe+5E2DCF: 48 63 FA - movsxd rdi,edx
nebuchadnezzar.exe+5E2DD2: 48 8B D9 - mov rbx,rcx
nebuchadnezzar.exe+5E2DD5: 48 8B 01 - mov rax,[rcx]
nebuchadnezzar.exe+5E2DD8: 8B D7 - mov edx,edi
nebuchadnezzar.exe+5E2DDA: FF 90 88 00 00 00 - call qword ptr [rax+00000088]
nebuchadnezzar.exe+5E2DE0: 84 C0 - test al,al
nebuchadnezzar.exe+5E2DE2: 0F 84 96 00 00 00 - je nebuchadnezzar.exe+5E2E7E
nebuchadnezzar.exe+5E2DE8: 4C 8D 0C BD 00 00 00 00 - lea r9,[rdi*4+00000000]
nebuchadnezzar.exe+5E2DF0: 48 8B 83 80 00 00 00 - mov rax,[rbx+00000080]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+5E2DF7: 41 FF 0C 01 - dec [r9+rax]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+5E2DFB: 48 8B 83 B0 00 00 00 - mov rax,[rbx+000000B0]
nebuchadnezzar.exe+5E2E02: 48 8B 93 98 00 00 00 - mov rdx,[rbx+00000098]
nebuchadnezzar.exe+5E2E09: 46 8B 04 0A - mov r8d,[rdx+r9]
nebuchadnezzar.exe+5E2E0D: 46 2B 04 08 - sub r8d,[rax+r9]
nebuchadnezzar.exe+5E2E11: 41 FF C8 - dec r8d
nebuchadnezzar.exe+5E2E14: 48 8B 83 80 00 00 00 - mov rax,[rbx+00000080]
nebuchadnezzar.exe+5E2E1B: 45 39 04 01 - cmp [r9+rax],r8d
nebuchadnezzar.exe+5E2E1F: 75 3C - jne nebuchadnezzar.exe+5E2E5D
nebuchadnezzar.exe+5E2E21: C7 84 24 80 00 00 00 03 00 00 00 - mov [rsp+00000080],00000003
nebuchadnezzar.exe+5E2E2C: 48 8B 03 - mov rax,[rbx]
nebuchadnezzar.exe+5E2E2F: 48 8B CB - mov rcx,rbx
nebuchadnezzar.exe+5E2E32: FF 90 00 01 00 00 - call qword ptr [rax+00000100]
nebuchadnezzar.exe+5E2E38: 89 84 24 84 00 00 00 - mov [rsp+00000084],eax
nebuchadnezzar.exe+5E2E3F: 48 8B 0D 02 9E 21 00 - mov rcx,[nebuchadnezzar.exe+7FCC48]
nebuchadnezzar.exe+5E2E46: 48 81 C1 B8 00 00 00 - add rcx,000000B8
nebuchadnezzar.exe+5E2E4D: 45 33 C0 - xor r8d,r8d
nebuchadnezzar.exe+5E2E50: 48 8D 94 24 80 00 00 00 - lea rdx,[rsp+00000080]
nebuchadnezzar.exe+5E2E58: E8 83 2E F7 FF - call nebuchadnezzar.exe+555CE0
nebuchadnezzar.exe+5E2E5D: 48 8B 8C 24 88 00 00 00 - mov rcx,[rsp+00000088]
nebuchadnezzar.exe+5E2E65: 48 33 CC - xor rcx,rsp
}
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>8</ID>
<Description>"Get Base"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-19
Author : aSwedishMagyar
}
{$lua}
if syntaxcheck then return end
local offsetResources = 0x13A8
local resourceNames = {"Wheat","Bread","Milk","Clay","Ceramic","Bricks","Fish","Spices"}
local offsets = {0x0,0x4,0x8,0xC,0x10,0x14,0x18,0x1C,0x20,0x24,0x28,0x2C,0x30}
local bTypes ={{"Poor market","base::build.market.basic.3"},{"Bakery","base::build.shop.bread"},
{"Crop farm","base::build.farm.plant.1"},{"Livestock farm","base::build.farm.animal.2"},
{"Clay mine","base::build.mine.clay"},{"Ceramic workshop","base::build.shop.ceramic"},
{"Well","base::build.service.water"}}
local bOffsets = {{2,3},{1,2},{1},{3},{4},{4,5},{0}}
function matchBuilding(bString)
for i = 1,#bTypes do
if bString == bTypes[i][2] then
return {Offsets = bOffsets[i],Type = bTypes[i][1]}
end
end
return nil
end
function createBuilding(base,mainRec,building)
local topRec = createHeader(building.Type,mainRec)
local baseCurrent = readPointer(base+0x98)
local baseMax = readPointer(base+0xB0)
for i = 1,#building.Offsets do
if building.Offsets[i] ~= 0 then
createRec(baseCurrent,offsets[building.Offsets[i]],"Current "..resourceNames[building.Offsets[i]],topRec)
createRec(baseMax,offsets[building.Offsets[i]],"Max "..resourceNames[building.Offsets[i]],topRec)
end
end
end
function populateBuildings(mainRec)
local baseAddr = getAddressSafe('[[baseGame]+0x13C0]')
if baseAddr then
local buildingNum = readInteger(getAddressSafe('[baseGame]+0x17A8'))-1
for i = 0,buildingNum do
local baseBuilding = readPointer(baseAddr+8*i)
local bString = readString(readPointer(readPointer(baseBuilding+0x20)+0x10),50)
local building = matchBuilding(bString)
if building ~= nil then
createBuilding(baseBuilding,mainRec,building)
end
end
end
end
function createHeader(name,mainRec)
local addList = getAddressList()
local topRec = addList.createMemoryRecord()
topRec.isGroupHeader = true
topRec.options = '[moHideChildren]'
topRec.setDescription(name)
topRec.appendToEntry(mainRec)
return topRec
end
function populateResources(mainRec)
local base = getAddressSafe('[[baseGame]+13A8]')
for i = 1,#resourceNames do
createRec(base,offsets[i],resourceNames[i],mainRec)
end
end
function createRec(addr,offset,recName,topRec)
local addList = getAddressList()
local newRec = addList.createMemoryRecord()
newRec.setAddress(addr+offset)
newRec.setDescription(recName)
newRec.Type = 2
newRec.appendToEntry(topRec)
end
function removeRecords(mainRec)
if mainRec ~= nil then
while mainRec.Count > 0 do
mainRec.Child[0]:Delete()
end
end
end
{$asm}
[ENABLE]
aobscanmodule(getGame,nebuchadnezzar.exe,44 8B B6 24 14 00 00)
registersymbol(getGame)
registersymbol(baseGame)
alloc(newgetGame,100,getGame)
label(codegetGame)
label(returngetGame)
label(baseGame)
newgetGame:
mov [baseGame],rsi
codegetGame:
mov r14d,[rsi+00001424]
jmp returngetGame
baseGame:
dq 0
getGame:
jmp newgetGame
nop 2
returngetGame:
[DISABLE]
getGame:
db 44 8B B6 24 14 00 00
unregistersymbol(getGame)
unregistersymbol(baseGame)
dealloc(newgetGame)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+590947
nebuchadnezzar.exe+5908FA: B8 20 3A 00 00 - mov eax,00003A20
nebuchadnezzar.exe+5908FF: EB 36 - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+590901: B8 40 3A 00 00 - mov eax,00003A40
nebuchadnezzar.exe+590906: EB 2F - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+590908: B8 60 3A 00 00 - mov eax,00003A60
nebuchadnezzar.exe+59090D: EB 28 - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+59090F: B8 80 3A 00 00 - mov eax,00003A80
nebuchadnezzar.exe+590914: EB 21 - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+590916: B8 A0 3A 00 00 - mov eax,00003AA0
nebuchadnezzar.exe+59091B: EB 1A - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+59091D: B8 C0 3A 00 00 - mov eax,00003AC0
nebuchadnezzar.exe+590922: EB 13 - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+590924: B8 E0 3A 00 00 - mov eax,00003AE0
nebuchadnezzar.exe+590929: EB 0C - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+59092B: B8 00 3B 00 00 - mov eax,00003B00
nebuchadnezzar.exe+590930: EB 05 - jmp nebuchadnezzar.exe+590937
nebuchadnezzar.exe+590932: B8 20 3B 00 00 - mov eax,00003B20
nebuchadnezzar.exe+590937: 49 8D 14 00 - lea rdx,[r8+rax]
nebuchadnezzar.exe+59093B: 48 8B 8F 18 01 00 00 - mov rcx,[rdi+00000118]
nebuchadnezzar.exe+590942: E8 69 5B 08 00 - call nebuchadnezzar.exe+6164B0
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+590947: 44 8B B6 24 14 00 00 - mov r14d,[rsi+00001424]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+59094E: 48 8B 9F 38 01 00 00 - mov rbx,[rdi+00000138]
nebuchadnezzar.exe+590955: 45 33 ED - xor r13d,r13d
nebuchadnezzar.exe+590958: 44 39 B3 F8 00 00 00 - cmp [rbx+000000F8],r14d
nebuchadnezzar.exe+59095F: 75 09 - jne nebuchadnezzar.exe+59096A
nebuchadnezzar.exe+590961: 44 39 AB 20 01 00 00 - cmp [rbx+00000120],r13d
nebuchadnezzar.exe+590968: 74 3E - je nebuchadnezzar.exe+5909A8
nebuchadnezzar.exe+59096A: 45 8B C6 - mov r8d,r14d
nebuchadnezzar.exe+59096D: 48 8D 55 50 - lea rdx,[rbp+50]
nebuchadnezzar.exe+590971: 48 8B 0D C0 C2 26 00 - mov rcx,[nebuchadnezzar.exe+7FCC38]
nebuchadnezzar.exe+590978: 48 8B 89 68 03 00 00 - mov rcx,[rcx+00000368]
nebuchadnezzar.exe+59097F: E8 DC 85 D6 FF - call nebuchadnezzar.exe+2F8F60
nebuchadnezzar.exe+590984: 90 - nop
nebuchadnezzar.exe+590985: 48 8B D0 - mov rdx,rax
nebuchadnezzar.exe+590988: 48 8B CB - mov rcx,rbx
nebuchadnezzar.exe+59098B: E8 A0 53 08 00 - call nebuchadnezzar.exe+615D30
nebuchadnezzar.exe+590990: 90 - nop
nebuchadnezzar.exe+590991: 48 8D 4D 50 - lea rcx,[rbp+50]
nebuchadnezzar.exe+590995: E8 B6 AF B9 FF - call nebuchadnezzar.exe+12B950
nebuchadnezzar.exe+59099A: 44 89 B3 F8 00 00 00 - mov [rbx+000000F8],r14d
nebuchadnezzar.exe+5909A1: 44 89 AB 20 01 00 00 - mov [rbx+00000120],r13d
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>15</ID>
<Description>"Population"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>baseGame</Address>
<Offsets>
<Offset>1420</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>9</ID>
<Description>"Money"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>baseGame</Address>
<Offsets>
<Offset>1424</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>29</ID>
<Description>"Resources"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
populateResources(memrec)
[DISABLE]
removeRecords(memrec)
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>30</ID>
<Description>"Buildings"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
populateBuildings(memrec)
[DISABLE]
removeRecords(memrec)
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>56</ID>
<Description>"Currently Selected Warehouse"</Description>
<LastState Value="" RealAddress="00000000"/>
<ShowAsSigned>0</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>baseGame</Address>
<Offsets>
<Offset>0</Offset>
<Offset>2258</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>91</ID>
<Description>"Set House Occupancy Limit"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-20
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(houseOccupancy,nebuchadnezzar.exe,41 3B 86 A8 00 00 00)
registersymbol(houseOccupancy)
registersymbol(minAmount)
alloc(newhouseOccupancy,100,houseOccupancy)
label(codehouseOccupancy)
label(returnhouseOccupancy)
label(minAmount)
newhouseOccupancy:
push ebx
mov ebx,[minAmount]
mov [r14+A8],ebx
pop ebx
codehouseOccupancy:
cmp eax,[r14+000000A8]
jmp returnhouseOccupancy
minAmount:
dd 64
houseOccupancy:
jmp newhouseOccupancy
nop 2
returnhouseOccupancy:
[DISABLE]
houseOccupancy:
db 41 3B 86 A8 00 00 00
unregistersymbol(houseOccupancy)
unregistersymbol(minAmount)
dealloc(newhouseOccupancy)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+57448A
nebuchadnezzar.exe+57443A: 48 89 7C 24 20 - mov [rsp+20],rdi
nebuchadnezzar.exe+57443F: 55 - push rbp
nebuchadnezzar.exe+574440: 41 54 - push r12
nebuchadnezzar.exe+574442: 41 55 - push r13
nebuchadnezzar.exe+574444: 41 56 - push r14
nebuchadnezzar.exe+574446: 41 57 - push r15
nebuchadnezzar.exe+574448: 48 8D 6C 24 C9 - lea rbp,[rsp-37]
nebuchadnezzar.exe+57444D: 48 81 EC E0 00 00 00 - sub rsp,000000E0
nebuchadnezzar.exe+574454: 48 8B 05 CD 8B 27 00 - mov rax,[nebuchadnezzar.exe+7ED028]
nebuchadnezzar.exe+57445B: 48 33 C4 - xor rax,rsp
nebuchadnezzar.exe+57445E: 48 89 45 27 - mov [rbp+27],rax
nebuchadnezzar.exe+574462: 4C 8B F1 - mov r14,rcx
nebuchadnezzar.exe+574465: 48 8B 49 20 - mov rcx,[rcx+20]
nebuchadnezzar.exe+574469: E8 B2 28 FD FF - call nebuchadnezzar.exe+546D20
nebuchadnezzar.exe+57446E: 8B 90 48 02 00 00 - mov edx,[rax+00000248]
nebuchadnezzar.exe+574474: 49 8B 46 78 - mov rax,[r14+78]
nebuchadnezzar.exe+574478: 49 2B 46 70 - sub rax,[r14+70]
nebuchadnezzar.exe+57447C: 48 C1 F8 03 - sar rax,03
nebuchadnezzar.exe+574480: 0F AF C2 - imul eax,edx
nebuchadnezzar.exe+574483: 41 03 86 A4 00 00 00 - add eax,[r14+000000A4]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+57448A: 41 3B 86 A8 00 00 00 - cmp eax,[r14+000000A8]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+574491: 7C 07 - jl nebuchadnezzar.exe+57449A
nebuchadnezzar.exe+574493: 33 C0 - xor eax,eax
nebuchadnezzar.exe+574495: E9 37 02 00 00 - jmp nebuchadnezzar.exe+5746D1
nebuchadnezzar.exe+57449A: 48 C7 45 FF FF FF FF FF - mov qword ptr [rbp-01],FFFFFFFFFFFFFFFF
nebuchadnezzar.exe+5744A2: 33 C0 - xor eax,eax
nebuchadnezzar.exe+5744A4: 41 BF FF FF FF 7F - mov r15d,7FFFFFFF
nebuchadnezzar.exe+5744AA: 0F 57 C9 - xorps xmm1,xmm1
nebuchadnezzar.exe+5744AD: F3 0F 7F 4D 0F - movdqu [rbp+0F],xmm1
nebuchadnezzar.exe+5744B2: 48 89 45 1F - mov [rbp+1F],rax
nebuchadnezzar.exe+5744B6: C7 45 97 FF FF FF FF - mov [rbp-69],FFFFFFFF
nebuchadnezzar.exe+5744BD: 33 F6 - xor esi,esi
nebuchadnezzar.exe+5744BF: 48 8B 7D FF - mov rdi,[rbp-01]
nebuchadnezzar.exe+5744C3: 48 8B 0D 7E 87 28 00 - mov rcx,[nebuchadnezzar.exe+7FCC48]
nebuchadnezzar.exe+5744CA: 66 0F 1F 44 00 00 - nop word ptr [rax+rax+00]
nebuchadnezzar.exe+5744D0: 48 8B 9C 0E 24 23 00 00 - mov rbx,[rsi+rcx+00002324]
nebuchadnezzar.exe+5744D8: 83 FB FF - cmp ebx,-01
nebuchadnezzar.exe+5744DB: 74 62 - je nebuchadnezzar.exe+57453F
nebuchadnezzar.exe+5744DD: 48 81 C1 50 1F 00 00 - add rcx,00001F50
nebuchadnezzar.exe+5744E4: C6 44 24 38 00 - mov byte ptr [rsp+38],00
nebuchadnezzar.exe+5744E9: 48 8D 45 97 - lea rax,[rbp-69]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>92</ID>
<Description>"Max House Occupancy"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>minAmount</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>98</ID>
<Description>"Set Minium Resource Value"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-20
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(minResources,nebuchadnezzar.exe,44 8B 34 88 48 8B 87 90 01 00 00)
registersymbol(minResources)
registersymbol(minResourceVal)
alloc(newminResources,100,minResources)
label(codeminResources)
label(returnminResources)
label(minResourceVal)
newminResources:
mov r14d,[rax+rcx*4]
cmp r14d,[minResourceVal]
jae codeminResources
mov r14d,[minResourceVal]
codeminResources:
mov [rax+rcx*4],r14d
mov rax,[rdi+00000190]
jmp returnminResources
minResourceVal:
dd F
minResources:
jmp newminResources
nop 6
returnminResources:
[DISABLE]
minResources:
db 44 8B 34 88 48 8B 87 90 01 00 00
unregistersymbol(minResources)
unregistersymbol(minResourceVal)
dealloc(newminResources)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+590C5B
nebuchadnezzar.exe+590BFC: 49 83 C5 04 - add r13,04
nebuchadnezzar.exe+590C00: 49 83 C7 08 - add r15,08
nebuchadnezzar.exe+590C04: 49 83 C4 10 - add r12,10
nebuchadnezzar.exe+590C08: 48 8B 05 29 C0 26 00 - mov rax,[nebuchadnezzar.exe+7FCC38]
nebuchadnezzar.exe+590C0F: 48 8B 88 68 04 00 00 - mov rcx,[rax+00000468]
nebuchadnezzar.exe+590C16: 48 2B 88 60 04 00 00 - sub rcx,[rax+00000460]
nebuchadnezzar.exe+590C1D: 48 C1 F9 03 - sar rcx,03
nebuchadnezzar.exe+590C21: 44 3B F1 - cmp r14d,ecx
nebuchadnezzar.exe+590C24: 0F 8C C6 FD FF FF - jl nebuchadnezzar.exe+5909F0
nebuchadnezzar.exe+590C2A: 45 33 ED - xor r13d,r13d
nebuchadnezzar.exe+590C2D: 45 8B FD - mov r15d,r13d
nebuchadnezzar.exe+590C30: 48 8B 8F 60 01 00 00 - mov rcx,[rdi+00000160]
nebuchadnezzar.exe+590C37: 48 8B 87 68 01 00 00 - mov rax,[rdi+00000168]
nebuchadnezzar.exe+590C3E: 48 2B C1 - sub rax,rcx
nebuchadnezzar.exe+590C41: 48 C1 F8 02 - sar rax,02
nebuchadnezzar.exe+590C45: 85 C0 - test eax,eax
nebuchadnezzar.exe+590C47: 0F 8E 8E 00 00 00 - jng nebuchadnezzar.exe+590CDB
nebuchadnezzar.exe+590C4D: 4D 8B E5 - mov r12,r13
nebuchadnezzar.exe+590C50: 4A 63 0C 29 - movsxd rcx,dword ptr [rcx+r13]
nebuchadnezzar.exe+590C54: 48 8B 86 A8 13 00 00 - mov rax,[rsi+000013A8]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+590C5B: 44 8B 34 88 - mov r14d,[rax+rcx*4]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+590C5F: 48 8B 87 90 01 00 00 - mov rax,[rdi+00000190]
nebuchadnezzar.exe+590C66: 49 8B 1C 04 - mov rbx,[r12+rax]
nebuchadnezzar.exe+590C6A: 44 39 B3 F8 00 00 00 - cmp [rbx+000000F8],r14d
nebuchadnezzar.exe+590C71: 75 09 - jne nebuchadnezzar.exe+590C7C
nebuchadnezzar.exe+590C73: 83 BB 20 01 00 00 00 - cmp dword ptr [rbx+00000120],00
nebuchadnezzar.exe+590C7A: 74 33 - je nebuchadnezzar.exe+590CAF
nebuchadnezzar.exe+590C7C: 41 8B D6 - mov edx,r14d
nebuchadnezzar.exe+590C7F: 48 8D 4D A0 - lea rcx,[rbp-60]
nebuchadnezzar.exe+590C83: E8 58 D1 BC FF - call nebuchadnezzar.exe+15DDE0
nebuchadnezzar.exe+590C88: 90 - nop
nebuchadnezzar.exe+590C89: 48 8B D0 - mov rdx,rax
nebuchadnezzar.exe+590C8C: 48 8B CB - mov rcx,rbx
nebuchadnezzar.exe+590C8F: E8 9C 50 08 00 - call nebuchadnezzar.exe+615D30
nebuchadnezzar.exe+590C94: 90 - nop
nebuchadnezzar.exe+590C95: 48 8D 4D A0 - lea rcx,[rbp-60]
nebuchadnezzar.exe+590C99: E8 B2 AC B9 FF - call nebuchadnezzar.exe+12B950
nebuchadnezzar.exe+590C9E: 44 89 B3 F8 00 00 00 - mov [rbx+000000F8],r14d
nebuchadnezzar.exe+590CA5: C7 83 20 01 00 00 00 00 00 00 - mov [rbx+00000120],00000000
nebuchadnezzar.exe+590CAF: 41 FF C7 - inc r15d
nebuchadnezzar.exe+590CB2: 49 83 C5 04 - add r13,04
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>99</ID>
<Description>"Minimum Value"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>minResourceVal</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>140</ID>
<Description>"Set Minimum Resource for Building"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{
Game : nebuchadnezzar.exe
Version :
Date : 2021-02-20
Author : aSwedishMagyar
}
[ENABLE]
aobscanmodule(minimumBuildingVal,nebuchadnezzar.exe,42 8B 14 01 42 2B 14 00 85)
registersymbol(minimumBuildingVal)
registersymbol(minResourceBuildingVal)
alloc(newminimumBuildingVal,100,minimumBuildingVal)
label(codeminimumBuildingVal)
label(returnminimumBuildingVal)
label(minResourceBuildingVal)
newminimumBuildingVal:
mov edx,[rcx+r8]
cmp edx,[minResourceBuildingVal]
jae codeminimumBuildingVal
mov edx,[minResourceBuildingVal]
mov [rcx+r8],edx
codeminimumBuildingVal:
sub edx,[rax+r8]
jmp returnminimumBuildingVal
minResourceBuildingVal:
dd 5
minimumBuildingVal:
jmp newminimumBuildingVal
nop 3
returnminimumBuildingVal:
[DISABLE]
minimumBuildingVal:
db 42 8B 14 01 42 2B 14 00
unregistersymbol(minimumBuildingVal)
unregistersymbol(minResourceBuildingVal)
dealloc(newminimumBuildingVal)
{
// ORIGINAL CODE - INJECTION POINT: nebuchadnezzar.exe+6679F9
nebuchadnezzar.exe+6679B1: 49 8B CF - mov rcx,r15
nebuchadnezzar.exe+6679B4: 4C 8D 44 24 20 - lea r8,[rsp+20]
nebuchadnezzar.exe+6679B9: 48 8B D0 - mov rdx,rax
nebuchadnezzar.exe+6679BC: E8 EF BE AF FF - call nebuchadnezzar.exe+1638B0
nebuchadnezzar.exe+6679C1: 48 83 C3 04 - add rbx,04
nebuchadnezzar.exe+6679C5: 48 3B DF - cmp rbx,rdi
nebuchadnezzar.exe+6679C8: 75 A8 - jne nebuchadnezzar.exe+667972
nebuchadnezzar.exe+6679CA: 48 8B 5C 24 58 - mov rbx,[rsp+58]
nebuchadnezzar.exe+6679CF: 48 8B 74 24 60 - mov rsi,[rsp+60]
nebuchadnezzar.exe+6679D4: 48 83 C4 30 - add rsp,30
nebuchadnezzar.exe+6679D8: 41 5F - pop r15
nebuchadnezzar.exe+6679DA: 41 5E - pop r14
nebuchadnezzar.exe+6679DC: 5F - pop rdi
nebuchadnezzar.exe+6679DD: C3 - ret
nebuchadnezzar.exe+6679DE: CC - int 3
nebuchadnezzar.exe+6679DF: CC - int 3
nebuchadnezzar.exe+6679E0: 48 63 C2 - movsxd rax,edx
nebuchadnezzar.exe+6679E3: 4C 8D 04 85 00 00 00 00 - lea r8,[rax*4+00000000]
nebuchadnezzar.exe+6679EB: 48 8B 81 E0 00 00 00 - mov rax,[rcx+000000E0]
nebuchadnezzar.exe+6679F2: 48 8B 89 98 00 00 00 - mov rcx,[rcx+00000098]
// ---------- INJECTING HERE ----------
nebuchadnezzar.exe+6679F9: 42 8B 14 01 - mov edx,[rcx+r8]
// ---------- DONE INJECTING ----------
nebuchadnezzar.exe+6679FD: 42 2B 14 00 - sub edx,[rax+r8]
nebuchadnezzar.exe+667A01: 85 D2 - test edx,edx
nebuchadnezzar.exe+667A03: 0F 9F C0 - setg al
nebuchadnezzar.exe+667A06: C3 - ret
nebuchadnezzar.exe+667A07: CC - int 3
nebuchadnezzar.exe+667A08: CC - int 3
nebuchadnezzar.exe+667A09: CC - int 3
nebuchadnezzar.exe+667A0A: CC - int 3
nebuchadnezzar.exe+667A0B: CC - int 3
nebuchadnezzar.exe+667A0C: CC - int 3
nebuchadnezzar.exe+667A0D: CC - int 3
nebuchadnezzar.exe+667A0E: CC - int 3
nebuchadnezzar.exe+667A0F: CC - int 3
nebuchadnezzar.exe+667A10: 48 8B 81 28 01 00 00 - mov rax,[rcx+00000128]
nebuchadnezzar.exe+667A17: 4C 63 C2 - movsxd r8,edx
nebuchadnezzar.exe+667A1A: 41 80 3C 00 00 - cmp byte ptr [r8+rax],00
nebuchadnezzar.exe+667A1F: 75 03 - jne nebuchadnezzar.exe+667A24
nebuchadnezzar.exe+667A21: 32 C0 - xor al,al
nebuchadnezzar.exe+667A23: C3 - ret
nebuchadnezzar.exe+667A24: 48 8B 01 - mov rax,[rcx]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>101</ID>
<Description>"Minimum Value"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>minResourceBuildingVal</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
<CheatCodes>
<CodeEntry Color="80000008">
<Description>Change of movss [rcx+000000DC],xmm1</Description>
<AddressString>nebuchadnezzar.exe+5B7B98</AddressString>
<Before>
<Byte>CA</Byte>
<Byte>F3</Byte>
<Byte>0F</Byte>
<Byte>5E</Byte>
<Byte>C2</Byte>
</Before>
<Actual>
<Byte>F3</Byte>
<Byte>0F</Byte>
<Byte>11</Byte>
<Byte>89</Byte>
<Byte>DC</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
<Byte>00</Byte>
</Actual>
<After>
<Byte>F3</Byte>
<Byte>0F</Byte>
<Byte>11</Byte>
<Byte>81</Byte>
<Byte>D8</Byte>
</After>
</CodeEntry>
</CheatCodes>
<UserdefinedSymbols/>
</CheatTable>