<?xml version="1.0" encoding="utf-8"?>
<CheatTable ApoctEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Maphack"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Star Trek: Birth of the Federation
  Version: 
  Date   : 2023-09-16
  Author : Apocalypticx

  This script does maphack
}

[ENABLE]

aobscanmodule(maphack,trek.exe,8B 56 04 42 8B 3E) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
pushfd
createthread(trek.exe+1A64)

code:
popfd
  mov edx,[esi+04]
  inc edx
  mov edi,[esi]
  jmp return

maphack:
  jmp newmem
  nop
return:
registersymbol(maphack)

[DISABLE]

maphack:
  db 8B 56 04 42 8B 3E

unregistersymbol(maphack)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: trek.exe+11BABB

trek.exe+11BAA3: 74 04                 - je trek.exe+11BAA9
trek.exe+11BAA5: 85 C9                 - test ecx,ecx
trek.exe+11BAA7: 74 E4                 - je trek.exe+11BA8D
trek.exe+11BAA9: 8D 59 F8              - lea ebx,[ecx-08]
trek.exe+11BAAC: 85 F6                 - test esi,esi
trek.exe+11BAAE: 75 0B                 - jne trek.exe+11BABB
trek.exe+11BAB0: 31 D2                 - xor edx,edx
trek.exe+11BAB2: 31 C0                 - xor eax,eax
trek.exe+11BAB4: E8 B7 F9 FF FF        - call trek.exe+11B470
trek.exe+11BAB9: 89 C6                 - mov esi,eax
// ---------- INJECTING HERE ----------
trek.exe+11BABB: 8B 56 04              - mov edx,[esi+04]
// ---------- DONE INJECTING  ----------
trek.exe+11BABE: 42                    - inc edx
trek.exe+11BABF: 8B 3E                 - mov edi,[esi]
trek.exe+11BAC1: 89 56 04              - mov [esi+04],edx
trek.exe+11BAC4: 85 FF                 - test edi,edi
trek.exe+11BAC6: 74 1C                 - je trek.exe+11BAE4
trek.exe+11BAC8: 89 3B                 - mov [ebx],edi
trek.exe+11BACA: 89 1E                 - mov [esi],ebx
trek.exe+11BACC: 8B 2B                 - mov ebp,[ebx]
trek.exe+11BACE: C7 43 04 00 00 00 00  - mov [ebx+04],00000000
trek.exe+11BAD5: 85 ED                 - test ebp,ebp
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>0</ID>
          <Description>" Maphack 1=On 0=Off"</Description>
          <VariableType>4 Bytes</VariableType>
          <Address>trek.exe+1A2B6C</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>5</ID>
      <Description>"1 Million Production"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Star Trek: Birth of the Federation
  Version: 
  Date   : 2023-09-16
  Author : Apocalypticx

  This script does 1 turn build
}

[ENABLE]

aobscanmodule(slidershack,trek.exe,89 42 2C 8B 83 A8 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [edx+2C],eax
  mov [edx+2C],(int)1000000
  mov eax,[ebx+000000A8]
  jmp return

slidershack:
  jmp newmem
  nop 4
return:
registersymbol(slidershack)

[DISABLE]

slidershack:
  db 89 42 2C 8B 83 A8 00 00 00

unregistersymbol(slidershack)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: trek.exe+41DB4

trek.exe+41D92: DC 0C 24              - fmul qword ptr [esp]
trek.exe+41D95: DD 1C 24              - fstp qword ptr [esp]
trek.exe+41D98: 8B 44 24 04           - mov eax,[esp+04]
trek.exe+41D9C: 50                    - push eax
trek.exe+41D9D: 8B 4C 24 04           - mov ecx,[esp+04]
trek.exe+41DA1: 51                    - push ecx
trek.exe+41DA2: E8 4D B9 0D 00        - call trek.exe+11D6F4
trek.exe+41DA7: E8 28 B9 0D 00        - call trek.exe+11D6D4
trek.exe+41DAC: DF 7C 24 08           - fistp qword ptr [esp+08]
trek.exe+41DB0: 8B 44 24 08           - mov eax,[esp+08]
// ---------- INJECTING HERE ----------
trek.exe+41DB4: 89 42 2C              - mov [edx+2C],eax
// ---------- DONE INJECTING  ----------
trek.exe+41DB7: 8B 83 A8 00 00 00     - mov eax,[ebx+000000A8]
trek.exe+41DBD: 8B 5A 2C              - mov ebx,[edx+2C]
trek.exe+41DC0: 01 C3                 - add ebx,eax
trek.exe+41DC2: 89 5A 2C              - mov [edx+2C],ebx
trek.exe+41DC5: 83 FB 05              - cmp ebx,05
trek.exe+41DC8: 0F 83 63 FF FF FF     - jae trek.exe+41D31
trek.exe+41DCE: C7 42 2C 05 00 00 00  - mov [edx+2C],00000005
trek.exe+41DD5: 83 C4 14              - add esp,14
trek.exe+41DD8: 5D                    - pop ebp
trek.exe+41DD9: 5F                    - pop edi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"1 Million Intel"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Star Trek: Birth of the Federation
  Version: 
  Date   : 2023-09-22
  Author : Apocalypticx

  This script does intel slider
}

[ENABLE]

aobscanmodule(intelslider,trek.exe,89 69 40 5E 83 C4 0C) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [ecx+40],ebp
  mov [ecx+40],(int)1000000
  pop esi
  add esp,0C
  jmp return

intelslider:
  jmp newmem
  nop 2
return:
registersymbol(intelslider)

[DISABLE]

intelslider:
  db 89 69 40 5E 83 C4 0C

unregistersymbol(intelslider)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: trek.exe+4163A

trek.exe+41613: 89 74 24 08           - mov [esp+08],esi
trek.exe+41617: 89 54 24 04           - mov [esp+04],edx
trek.exe+4161B: DF 6C 24 04           - fild qword ptr [esp+04]
trek.exe+4161F: DE C9                 - fmulp st(1),st(0)
trek.exe+41621: E8 AE C0 0D 00        - call trek.exe+11D6D4
trek.exe+41626: DF 7C 24 04           - fistp qword ptr [esp+04]
trek.exe+4162A: 8B 54 24 04           - mov edx,[esp+04]
trek.exe+4162E: 89 51 40              - mov [ecx+40],edx
trek.exe+41631: 8B 83 AC 00 00 00     - mov eax,[ebx+000000AC]
trek.exe+41637: 8D 2C 02              - lea ebp,[edx+eax]
// ---------- INJECTING HERE ----------
trek.exe+4163A: 89 69 40              - mov [ecx+40],ebp
// ---------- DONE INJECTING  ----------
trek.exe+4163D: 5E                    - pop esi
trek.exe+4163E: 83 C4 0C              - add esp,0C
trek.exe+41641: 5D                    - pop ebp
trek.exe+41642: 59                    - pop ecx
trek.exe+41643: 5B                    - pop ebx
trek.exe+41644: C3                    - ret 
trek.exe+41645: C7 41 40 00 00 00 00  - mov [ecx+40],00000000
trek.exe+4164C: 83 C4 0C              - add esp,0C
trek.exe+4164F: 5D                    - pop ebp
trek.exe+41650: 59                    - pop ecx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>9</ID>
      <Description>"1 Million Research"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Star Trek: Birth of the Federation
  Version: 
  Date   : 2023-09-22
  Author : Apocalypticx

  This script does research slider
}

[ENABLE]

aobscanmodule(researchslider,trek.exe,89 69 30 83 C4 0C) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov [ecx+30],ebp
  mov [ecx+30],(int)1000000
  add esp,0C
  jmp return

researchslider:
  jmp newmem
  nop
return:
registersymbol(researchslider)

[DISABLE]

researchslider:
  db 89 69 30 83 C4 0C

unregistersymbol(researchslider)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: trek.exe+4172C

trek.exe+41709: 89 74 24 04        - mov [esp+04],esi
trek.exe+4170D: 89 14 24           - mov [esp],edx
trek.exe+41710: DF 2C 24           - fild qword ptr [esp]
trek.exe+41713: DE C9              - fmulp st(1),st(0)
trek.exe+41715: E8 BA BF 0D 00     - call trek.exe+11D6D4
trek.exe+4171A: DF 3C 24           - fistp qword ptr [esp]
trek.exe+4171D: 8B 14 24           - mov edx,[esp]
trek.exe+41720: 89 51 30           - mov [ecx+30],edx
trek.exe+41723: 8B 83 B0 00 00 00  - mov eax,[ebx+000000B0]
trek.exe+41729: 8D 2C 02           - lea ebp,[edx+eax]
// ---------- INJECTING HERE ----------
trek.exe+4172C: 89 69 30           - mov [ecx+30],ebp
// ---------- DONE INJECTING  ----------
trek.exe+4172F: 83 C4 0C           - add esp,0C
trek.exe+41732: 5D                 - pop ebp
trek.exe+41733: 5E                 - pop esi
trek.exe+41734: 59                 - pop ecx
trek.exe+41735: 5B                 - pop ebx
trek.exe+41736: C3                 - ret 
trek.exe+41737: 00 00              - add [eax],al
trek.exe+41739: 00 00              - add [eax],al
trek.exe+4173B: 00 00              - add [eax],al
trek.exe+4173D: 00 00              - add [eax],al
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Donate Paypal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
--NO_ACTIVATE
if syntaxcheck then return end
if memrec then print(memrec.Description) end

shellExecute('https://paypal.me/apocalypticx?country.x=GB&amp;locale.x=en_GB')

getLuaEngine().MenuItem1.DoClick()
getLuaEngine().Close()

[DISABLE]

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
