338
"~~~CompactMode (Activate Me!)~~"
0000FF
Auto Assembler Script
[ENABLE]
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible = state; getMainForm().Panel5.Visible = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))
[DISABLE]
LuaCall(cycleFullCompact(nil,false))
113687
"Battle Star Galactica Deadlock +DLC 1.5.113 Ship Base (Activate when In tactical Combat or after clicking on a ship)"
FF0000
Auto Assembler Script
[ENABLE]
aobscan(Playership,1B 8B BB 88 02 00 00) // should be unique
alloc(shipbase,$4048)
alloc(ship,4)
registersymbol(ship)
label(code)
label(return)
label(ShipInfo_dradisset_exit)
label(ShipInfo_movementset_exit)
label(ShipInfo_jumpset_exit)
label(jumps_start)
label(ShipInfo_firewallset_exit)
label(ShipInfo_repairset_exit)
label(ShipInfo_hullset_exit)
label(ShipInfo_hullset_entry)
label(ShipInfo_set_boost_enter)
label(ShipInfo_subsytem_exit)
label(ShipInfo_weaponset_exit)
label(ShipInfo_weaponset_entry)
label(ShipInfo_fighterhullset_exit)
label(ShipInfo_set_boost_exit)
label(ShipInfo_ammo_exit)
registersymbol(ShipInfo_repairset_enable)
registersymbol(ShipInfo_set_boost_enable)
registersymbol(ShipInfo_dradisset_enable)
registersymbol(ShipInfo_movementset_enable)
registersymbol(ShipInfo_firewallset_enable)
registersymbol(ShipInfo_subsytem_enable)
registersymbol(ShipInfo_hullset_enable)
registersymbol(ShipInfo_weaponset_enable)
registersymbol(ShipInfo_fighterhullset_enable)
registersymbol(ShipInfo_jumpset_enable)
registersymbol(ShipInfo_missileammo_enable)
alloc(ShipInfo_set_boost_enable,4)
alloc(ShipInfo_dradisset_enable,4)
alloc(ShipInfo_movementset_enable,4)
alloc(ShipInfo_jumpset_enable,4)
alloc(ShipInfo_firewallset_enable,4)
alloc(ShipInfo_repairset_enable,4)
alloc(ShipInfo_hullset_enable,4)
alloc(ShipInfo_subsytem_enable,4)
alloc(ShipInfo_weaponset_enable,4)
alloc(ShipInfo_fighterhullset_enable,4)
alloc(ShipInfo_missileammo_enable,4)
shipbase:
pushf
cmp byte ptr [ebx+000002A8],00 //test if player
jne code
mov [ship],ebx //<--Ship base
//mov edi,[ebx+00000288] //original code
cmp dword ptr [ShipInfo_repairset_enable], #0
je ShipInfo_repairset_exit
mov edi,[ebx+00000288]
test edi, edi
je ShipInfo_repairset_exit
mov [edi+40], (float)99999
mov [edi+44], (float)99999
mov [edi+48], (float)99999
mov [edi+4C], (float)99999
mov [edi+50], (float)99999
mov [edi+54], (float)99999
mov [edi+58], (float)99999
ShipInfo_repairset_exit:
ShipInfo_hullset_entry:
cmp dword ptr [ShipInfo_hullset_enable], #0
je ShipInfo_hullset_exit
mov edi, [edi+30]
test edi, edi
je ShipInfo_hullset_exit
mov [edi+0C], (float)999999
mov [edi+14], (float)999999
ShipInfo_hullset_exit:
cmp dword ptr [ShipInfo_subsytem_enable],#0
je ShipInfo_subsytem_exit
mov edi,[ebx+00000288]
test edi,edi
je ShipInfo_subsytem_exit
mov edi,[edi+34]
test edi,edi
je ShipInfo_subsytem_exit
mov ebx,[edi+10]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+14]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+18]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+1C]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+20]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+24]
test ebx,ebx
je ShipInfo_subsytem_exit
mov ebx,[ebx+24]
test ebx,ebx
je ShipInfo_subsytem_exit
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
ShipInfo_subsytem_exit:
cmp dword ptr [ShipInfo_movementset_enable], #0
je ShipInfo_movementset_exit
cmp dword ptr [edi+170], #4//test for fight
je ShipInfo_movementset_exit
mov ebx,[ship]
je ShipInfo_movementset_exit
test ebx, ebx
je ShipInfo_movementset_exit
mov [ebx+2B0], (float)1.5 //Max Turnrate
mov [ebx+2B4], (float)180 //Max Pitch
mov [ebx+2B8], (float)2 //Max Yaw
mov edi, [ebx+124]
test edi, edi
je ShipInfo_movementset_exit
mov [edi+10], (float)0 //MinVelocity
mov [edi+14], (float)50 //MaxVelocity
ShipInfo_movementset_exit:
cmp dword ptr [ShipInfo_missileammo_enable], #0
je ShipInfo_ammo_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_ammo_exit
mov edi, [ebx+210]
cmp [ebx+210],0
test edi, edi
je ShipInfo_ammo_exit
cmp [edi+10], #200
jg ShipInfo_ammo_exit
mov [edi+10], #50
cmp [edi+14], #200
jg ShipInfo_ammo_exit
mov [edi+14], #50
cmp [edi+18], #200
jg ShipInfo_ammo_exit
mov [edi+18], #50
ShipInfo_ammo_exit:
cmp dword ptr [ShipInfo_dradisset_enable], #0
je ShipInfo_dradisset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_dradisset_exit
mov [ebx+2A0],(float)9999
ShipInfo_dradisset_exit:
cmp dword ptr [ShipInfo_firewallset_enable], #0
je ShipInfo_firewallset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_firewallset_exit
cmp [ebx+1A0],0
je ShipInfo_firewallset_exit
mov edi, [ebx+1A0]
test edi, edi
je ShipInfo_firewallset_exit
mov [edi+3C], (float)9999//Max Defence Points
mov [edi+40], (float)9999//Regen Rate
mov [edi+4C], (float)9999//Current Defence points
ShipInfo_firewallset_exit:
{cmp dword ptr [ShipInfo_missileset_enable], #0
je ShipInfo_missileset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_missileset_exit
mov [ebx+2DC], #0 //missileCooldownTurns
mov edi, [ebx+284]
test edi, edi
je ShipInfo_missileset_exit
mov [edi+BC], #0 //initialMissileDelay
mov [edi+C0], #0 //missileCooldown
mov ebx,[ship]
test ebx, ebx
mov edi, [ebx+104]
test edi, edi
je ShipInfo_missileset_exit
mov [edi+50], #1 //TicksBetweenMissileCommands
ShipInfo_missileset_exit:}
ShipInfo_set_boost_enter:
cmp [ShipInfo_set_boost_enable], #0
je ShipInfo_set_boost_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_set_boost_exit
mov edi, [ebx+1A8]
test edi, edi
je ShipInfo_set_boost_exit
mov [edi+18], 0 //Boost Subsystem Penalty
mov [edi+1C], (float)4.0 //boostMaxDistanceBonus 4X
mov [edi+20], (float)0.0 //boostTurnPenalty
ShipInfo_set_boost_exit:
cmp [ShipInfo_fighterhullset_enable], #0
je ShipInfo_fighterhullset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_fighterhullset_exit
mov edi, [ebx+F0]
test edi, edi
je ShipInfo_fighterhullset_exit
mov [edi+2C], (float)500 //squadronToSquadronMaxRange
mov [edi+34], (float)500 //squadron1v1Distance
mov [edi+38], (float)5000 //squadron1v1MoveInSpeed
mov [edi+3C], (float)5000//squadron1v1MoveOutSpeed
mov [edi+48], (float)1 //defendVelocityOffset
ShipInfo_fighterhullset_exit:
ShipInfo_weaponset_entry:
cmp [ShipInfo_weaponset_enable], #0
je ShipInfo_weaponset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+10]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je code
mov edi, [ebx+26C]
test edi,edi
je code
mov edi, [edi+10]
test edi, edi
je code
mov edi, [edi+20]
test edi, edi
je code
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
////Next weapon
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+14]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+14]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
/////Next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+18]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+18]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
//////next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+1C]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+1C]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
////Next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
////Next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+24]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+24]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
///next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+28]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+28]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
///next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+2C]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+2C]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
////Next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+30]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+30]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
///next
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+34]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+64], (float)250 //Accuracy
mov [edi+6C], (float)2000 //WeaponMaximumRange
mov [edi+64], (float)250 //Accuracy
mov [edi+70], (float)180 //ArcAngle
mov byte ptr [edi+74], #1 //full360Mode
mov ebx,[ship]
test ebx, ebx
je ShipInfo_weaponset_exit
mov edi, [ebx+26C]
test edi,edi
je ShipInfo_weaponset_exit
mov edi, [edi+34]
test edi, edi
je ShipInfo_weaponset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_weaponset_exit
mov [edi+08],#1 //Min Firedelay
mov [edi+0C],#1 //Max Firedelay
ShipInfo_weaponset_exit:
jumps_start:
cmp [ShipInfo_jumpset_enable], #0
je ShipInfo_jumpset_exit
mov ebx,[ship]
test ebx, ebx
je ShipInfo_jumpset_exit
mov edi, [ebx+134]
test edi, edi
je ShipInfo_jumpset_exit
mov [edi+28], #0 //Jump Delay
mov [edi+2C], #0 //Jump Duration
mov [edi+38], #0 //Jump cooldownTurns
mov [edi+3C], #0 //Jump extraMissileDelay
mov byte ptr [edi+40], #0 //preventMiniJumpAction
mov ebx,[ship]
test ebx, ebx
je ShipInfo_jumpset_exit
mov edi, [ebx+13C]
test edi, edi
je ShipInfo_jumpset_exit
mov edi, [edi+20]
test edi, edi
je ShipInfo_jumpset_exit
mov [edi+8], #0 //Jump Delay Ticks Min
mov [edi+C], #0 //Jump Delay Ticks Max
mov ebx,[ship]
test ebx, ebx
je ShipInfo_jumpset_exit
mov edi, [ebx+104]
test edi, edi
je ShipInfo_jumpset_exit
mov [edi+78], (float)1
ShipInfo_jumpset_exit:
code:
//pop edi
//pop ebx
popf
mov edi,[ebx+00000288]
jmp return
Playership+01:
jmp shipbase
nop
return:
registersymbol(Playership)
[DISABLE]
Playership+01:
db 8B BB 88 02 00 00
unregistersymbol(Playership)
dealloc(shipbase)
dealloc(ship)
unregistersymbol(ship)
unregistersymbol(ShipInfo_dradisset_enable)
unregistersymbol(ShipInfo_movementset_enable)
unregistersymbol(ShipInfo_firewallset_enable)
unregistersymbol(ShipInfo_repairset_enable)
unregistersymbol(ShipInfo_hullset_enable)
unregistersymbol(ShipInfo_weaponset_enable)
unregistersymbol(ShipInfo_fighterhullset_enable)
unregistersymbol(ShipInfo_subsytem_enable)
unregistersymbol(ShipInfo_jumpset_enable)
unregistersymbol(ShipInfo_set_boost_enable)
unregistersymbol(ShipInfo_missileammo_enable)
dealloc(ShipInfo_movementset_enable)
dealloc(ShipInfo_dradisset_enable)
dealloc(ShipInfo_combatantset_enable)
dealloc(ShipInfo_firewallset_enable)
dealloc(ShipInfo_repairset_enable)
dealloc(ShipInfo_hullset_enable)
dealloc(ShipInfo_weaponset_enable)
dealloc(ShipInfo_fighterhullset_enable)
dealloc(ShipInfo_subsytem_enable)
dealloc(ShipInfo_jumpset_enable)
dealloc(ShipInfo_missileammo_enable)
{
// ORIGINAL CODE - INJECTION POINT: BDCIFOMGFOM:GNOIAIFNAMA+17e
BDCIFOMGFOM:GNOIAIFNAMA+15e: 74 1C - je BDCIFOMGFOM:GNOIAIFNAMA+17c
BDCIFOMGFOM:GNOIAIFNAMA+160: 8B 45 E8 - mov eax,[ebp-18]
BDCIFOMGFOM:GNOIAIFNAMA+163: 89 04 24 - mov [esp],eax
BDCIFOMGFOM:GNOIAIFNAMA+166: 8B 00 - mov eax,[eax]
BDCIFOMGFOM:GNOIAIFNAMA+168: FF 90 08 01 00 00 - call dword ptr [eax+00000108]
BDCIFOMGFOM:GNOIAIFNAMA+16e: 3B 45 10 - cmp eax,[ebp+10]
BDCIFOMGFOM:GNOIAIFNAMA+171: 0F 94 C0 - sete al
BDCIFOMGFOM:GNOIAIFNAMA+174: 0F B6 C0 - movzx eax,al
BDCIFOMGFOM:GNOIAIFNAMA+177: E9 68 00 00 00 - jmp BDCIFOMGFOM:GNOIAIFNAMA+1e4
BDCIFOMGFOM:GNOIAIFNAMA+17c: 39 1B - cmp [ebx],ebx
// ---------- INJECTING HERE ----------
BDCIFOMGFOM:GNOIAIFNAMA+17e: 8B BB 88 02 00 00 - mov edi,[ebx+00000288]
// ---------- DONE INJECTING ----------
BDCIFOMGFOM:GNOIAIFNAMA+184: 8B C7 - mov eax,edi
BDCIFOMGFOM:GNOIAIFNAMA+186: C7 44 24 04 00 00 00 00 - mov [esp+04],00000000
BDCIFOMGFOM:GNOIAIFNAMA+18e: 89 04 24 - mov [esp],eax
BDCIFOMGFOM:GNOIAIFNAMA+191: 8B C0 - mov eax,eax
BDCIFOMGFOM:GNOIAIFNAMA+193: E8 38 7E FB F1 - call UnityEngine:Object:op_Equality
BDCIFOMGFOM:GNOIAIFNAMA+198: 85 C0 - test eax,eax
BDCIFOMGFOM:GNOIAIFNAMA+19a: 74 07 - je BDCIFOMGFOM:GNOIAIFNAMA+1a3
BDCIFOMGFOM:GNOIAIFNAMA+19c: 33 C0 - xor eax,eax
BDCIFOMGFOM:GNOIAIFNAMA+19e: E9 41 00 00 00 - jmp BDCIFOMGFOM:GNOIAIFNAMA+1e4
BDCIFOMGFOM:GNOIAIFNAMA+1a3: 39 3F - cmp [edi],edi
}
113782
"Max Combat Strenth "
0
FF8000
Float
ship
2AC
113546
"OfficerSkills"
0
FF8000
4 Bytes
ship
28
104
113688
"Infinite Armor"
FF8000
Auto Assembler Script
[ENABLE]
aobscan(inf_armor,0F B6 80 A7 02 00 00 85 C0 75 14) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
push esi
cmp byte ptr [eax+000002A8],00//cmp if player
jne code
mov esi,[eax+30]
cmp esi,00100000
jna code
mov esi, [esi+20]
cmp esi,00100000
jna code
mov [esi+10], (float)99999
mov [esi+14], (float)99999
mov [esi+18], (float)99999
mov [esi+1C], (float)99999
mov [esi+20], (float)99999
mov [esi+24], (float)99999
code:
pop esi
movzx eax,byte ptr [eax+000002A7]
jmp return
inf_armor:
jmp newmem
nop 2
return:
registersymbol(inf_armor)
[DISABLE]
inf_armor:
db 0F B6 80 A7 02 00 00
unregistersymbol(inf_armor)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ShipInfo:get_IsCapital+9
2707532E: 00 00 - add [eax],al
27075330: BA 10 EE F1 34 - mov edx,34F1EE10
27075335: E9 EE 6C C0 DE - jmp System.Collections.Generic:List`1:.cctor
2707533A: 00 00 - add [eax],al
2707533C: 00 00 - add [eax],al
2707533E: 00 00 - add [eax],al
ShipInfo:get_IsCapital: 55 - push ebp
ShipInfo:get_IsCapital+1: 8B EC - mov ebp,esp
ShipInfo:get_IsCapital+3: 83 EC 08 - sub esp,08
ShipInfo:get_IsCapital+6: 8B 45 08 - mov eax,[ebp+08]
// ---------- INJECTING HERE ----------
ShipInfo:get_IsCapital+9: 0F B6 80 A7 02 00 00 - movzx eax,byte ptr [eax+000002A7]
// ---------- DONE INJECTING ----------
ShipInfo:get_IsCapital+10: 85 C0 - test eax,eax
ShipInfo:get_IsCapital+12: 75 14 - jne ShipInfo:get_IsCapital+28
ShipInfo:get_IsCapital+14: 8B 45 08 - mov eax,[ebp+08]
ShipInfo:get_IsCapital+17: 0F B6 80 A6 02 00 00 - movzx eax,byte ptr [eax+000002A6]
ShipInfo:get_IsCapital+1e: 85 C0 - test eax,eax
ShipInfo:get_IsCapital+20: 0F 94 C0 - sete al
ShipInfo:get_IsCapital+23: 0F B6 C0 - movzx eax,al
ShipInfo:get_IsCapital+26: EB 02 - jmp ShipInfo:get_IsCapital+2a
ShipInfo:get_IsCapital+28: 33 C0 - xor eax,eax
ShipInfo:get_IsCapital+2a: C9 - leave
}
113793
"Instant Missile Cooldown"
FF8000
Auto Assembler Script
[ENABLE]
aobscan(instant_miss_cooldown, 0F B6 80 A6 02 00 00 85 C0 0F 94) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
cmp byte ptr [eax+000002A8],00
jne code
mov word ptr [eax+000002DC],0
code:
movzx eax,byte ptr [eax+000002A6]
jmp return
instant_miss_cooldown:
jmp newmem
nop 2
return:
registersymbol(instant_miss_cooldown)
[DISABLE]
instant_miss_cooldown:
db 0F B6 80 A6 02 00 00
unregistersymbol(instant_miss_cooldown)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ShipInfo:get_IsCapital+17
13107F24: 00 00 - add [eax],al
13107F26: 00 00 - add [eax],al
ShipInfo:get_IsCapital: 55 - push ebp
ShipInfo:get_IsCapital+1: 8B EC - mov ebp,esp
ShipInfo:get_IsCapital+3: 83 EC 08 - sub esp,08
ShipInfo:get_IsCapital+6: 8B 45 08 - mov eax,[ebp+08]
ShipInfo:get_IsCapital+9: 0F B6 80 A7 02 00 00 - movzx eax,byte ptr [eax+000002A7]
ShipInfo:get_IsCapital+10: 85 C0 - test eax,eax
ShipInfo:get_IsCapital+12: 75 14 - jne ShipInfo:get_IsCapital+28
ShipInfo:get_IsCapital+14: 8B 45 08 - mov eax,[ebp+08]
// ---------- INJECTING HERE ----------
ShipInfo:get_IsCapital+17: 0F B6 80 A6 02 00 00 - movzx eax,byte ptr [eax+000002A6]
// ---------- DONE INJECTING ----------
ShipInfo:get_IsCapital+1e: 85 C0 - test eax,eax
ShipInfo:get_IsCapital+20: 0F 94 C0 - sete al
ShipInfo:get_IsCapital+23: 0F B6 C0 - movzx eax,al
ShipInfo:get_IsCapital+26: EB 02 - jmp ShipInfo:get_IsCapital+2a
ShipInfo:get_IsCapital+28: 33 C0 - xor eax,eax
ShipInfo:get_IsCapital+2a: C9 - leave
ShipInfo:get_IsCapital+2b: C3 - ret
13107F54: 00 00 - add [eax],al
13107F56: 00 00 - add [eax],al
BlackLab.Foundation:MonoBehaviourEx:AKFKBDLDJCI: 55 - push ebp
}
113784
">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Must Change to Yes in the Value field on the right!>>>>>>>>>>>>>>>>>>>>>>>>>\"
0000FF
1
113753
"Infinite Missile Ammo"
0:No
1:Yes
0
FF8000
4 Bytes
ShipInfo_missileammo_enable
113808
"Hull Set To Massive "
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_hullset_enable
113041
"Subsystems Set to God"
0:No
1:Yes
0
FF8000
4 Bytes
ShipInfo_subsytem_enable
113039
"Firewall Set to Max"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_firewallset_enable
113752
"Repair Rate Set to Massive"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_repairset_enable
113035
"DRADIS Range Set to Massive"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_dradisset_enable
113036
"Movement Set to Massive"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_movementset_enable
113529
"No Penalty from Boost"
0:No
1:Yes
0
FF8000
4 Bytes
ShipInfo_set_boost_enable
113043
"Improved Fighter Squadron"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_fighterhullset_enable
113042
"Improved Weapons (High Accuracy, better arcs, Range, Rapid Fire)"
0:No
1:Yes
FF8000
4 Bytes
ShipInfo_weaponset_enable
113785
"Jump Stuff"
0:No
1:Yes
0
FF8000
4 Bytes
ShipInfo_jumpset_enable
113625
"AllowBoarding? ->Select Yes/No"
0:No
1:Yes
0
FF8000
Byte
ship
81
113675
"Player Ship Pointers (Must have ship base activated)"
FF0000
1
113536
"Name"
-1:Neutral
0:Colonial
1:Cylon
2:SagittaronSeparatist
0
String
30
1
0
1
ship
0C
D8
113535
"Faction"
-1:Neutral
0:Colonial
1:Cylon
2:SagittaronSeparatist
0
4 Bytes
ship
74
113576
"MaxDRADISRange"
0
Float
ship
2a0
113637
"MaxTurretRange"
0
Float
ship
54
104
113569
"Movement"
FF0000
1
113564
"MinVelocity"
0
Float
ship
10
124
113565
"MaxVelocity"
0
Float
ship
14
124
113568
"MaxTurnRate"
0
Float
ship
2b0
113567
"MaxPitch"
0
Float
ship
2b4
113566
"MaxYaw"
0
Float
ship
2b8
113577
"MaxCombatantStrength"
0
Float
ship
2aC
113588
"Hull"
FF0000
1
113589
"repairs"
0
Float
ship
08
20
113587
"MaxHullpoints"
0
Float
ship
70
113590
"maxHealth"
0
Float
ship
C
20
113591
"startingMaxHealth"
0
Float
ship
10
20
113592
"currentHealth"
0
Float
ship
14
20
113593
"Boost"
0
Float
ship
18
20
113594
"Subsystems"
FF0000
1
113595
"CICmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
10
34
288
113597
"CICcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
10
34
288
113598
"NavmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
14
34
288
113600
"NavcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
14
34
288
113601
"FCmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
18
34
288
113603
"FCcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
18
34
288
113604
"ENGmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
1c
34
288
113606
"ENGcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
1c
34
288
113607
"TechmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
20
34
288
113609
"TechcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
20
34
288
113610
"HangmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
24
34
288
113612
"HangcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
24
34
288
113613
"ArmmaxHealth"
1:Yes
2:No
0
Float
ship
c
24
28
34
288
113615
"ArmcurrentHealth"
1:Yes
2:No
0
Float
ship
14
24
28
34
288
113636
"Firewall"
FF0000
1
113538
"MaxFirewallDefence"
0
Float
ship
3C
1A0
113539
"MaxFirewallRegenRate"
0
Float
ship
40
1A0
113541
"CurrentFirewallDefence"
0
Float
ship
4C
1A0
113542
"CurrentFirewallDefence2"
0
Float
ship
58
1A0
113570
"Repair Rates"
FF0000
1
113557
"GeneralHullRepairRate"
1:Yes
2:No
0
Float
ship
40
288
113558
"GeneralSubsystemRepairRate"
1:Yes
2:No
0
Float
ship
44
288
113559
"MinGeneralHullRepairPerTick"
1:Yes
2:No
0
Float
ship
48
288
113560
"FocussedRepairRate"
1:Yes
2:No
0
Float
ship
4C
288
113561
"MinFocussedRepairPerTick"
1:Yes
2:No
0
Float
ship
50
288
113562
"FighterRepairRate"
1:Yes
2:No
0
Float
ship
54
288
113563
"MinFighterRepairRate"
1:Yes
2:No
0
Float
ship
58
288
113586
"Armor"
FF0000
1
113579
"ArmourFront"
0
Float
ship
10
20
30
113580
"ArmourRear"
0
Float
ship
14
20
30
113581
"ArmourLeft"
0
Float
ship
18
20
30
113585
"ArmourRight"
0
Float
ship
1C
20
30
113584
"ArmourTop"
0
Float
ship
20
20
30
113583
"ArmourBottom"
0
Float
ship
24
20
30
113571
"Jump Stuff"
FF0000
1
113547
"Jump Delay"
0
4 Bytes
ship
28
134
113548
"Jump Duration"
0
4 Bytes
ship
2C
134
113549
"Jump cooldownTurns"
0
4 Bytes
ship
38
134
113550
"Jump extraMissileDelay"
0
4 Bytes
ship
3C
134
113551
"preventMiniJumpAction"
1:Yes
2:No
0
Byte
ship
40
134
113552
"Jump Delay Ticks Min"
1:Yes
2:No
0
4 Bytes
ship
8
20
13C
113553
"Jump Delay Ticks Max"
1:Yes
2:No
0
4 Bytes
ship
C
20
13C
113545
"TacticalJumpExclusionRadius"
0
Float
ship
78
104
113572
"Boost"
FF0000
1
113554
"Boost Subsystem Penalty"
1:Yes
2:No
0
4 Bytes
ship
018
1A8
113555
"boostMaxDistanceBonus"
1:Yes
2:No
0
Float
ship
1C
1A8
113556
"boostTurnPenalty"
0
Float
ship
20
1A8
113578
"Missile (Don't change Ammo slot amount if its reading a very large number or Zero)"
FF0000
1
113573
"Missile Slot 1 Current Ammo"
0
4 Bytes
ship
10
210
113805
"Missile Slot 2 Current Ammo (Only for Missile boats)"
0
4 Bytes
ship
14
210
113806
"Missile Slot 3 Current Ammo (Only for Missile boats)"
0
4 Bytes
ship
18
210
113804
"initialMissileDelay"
0
4 Bytes
ship
bc
284
113574
"missileCooldown"
1:Yes
2:No
0
4 Bytes
ship
C0
284
113575
"missileCooldownTurns (The Real Missile cooldown)"
1:Yes
2:No
0
4 Bytes
ship
2dc
113543
"TicksBetweenMissileCommands"
0
4 Bytes
ship
50
104
113616
"Weapons"
FF0000
1
113617
"Accuracy"
0
Float
ship
64
10
26c
113618
"WeaponMinRange"
0
Float
ship
68
10
26c
113619
"WeaponMaxRange"
0
Float
ship
6C
10
26c
113620
"ArcAngle"
0
Float
ship
70
10
26c
113621
"full360Mode"
0:No
1:Yes
0
Byte
ship
74
10
26c
113686
"FocusFireInfo"
0
Float
ship
7C
10
26c
113622
"MaxDamage (Set and Lock at High amount for One Hit KILL)"
0
FF8000
Float
ship
78
10
26c
113623
"FireDelayMin"
0
4 Bytes
ship
8
20
10
26c
113624
"FireDelayMax"
0
4 Bytes
ship
C
20
10
26c
113626
"Fighters"
FF0000
1
113627
"squadronToSquadronMaxRange"
0
Float
ship
2C
F0
113628
"squadron1v1Distance"
0
Float
ship
34
F0
113629
"squadron1v1MoveInSpeed"
0
Float
ship
38
F0
113630
"squadron1v1MoveOutSpeed"
0
Float
ship
3C
F0
113632
"defendVelocityOffset"
0
Float
ship
48
F0
113764
"Campaign Base (resources + other things) open BUY Ships Menu to Populate!"
FF0000
Auto Assembler Script
{ Game : BSG.exe
Version:
Date : 2021-01-24
Author : Cole
This script does blah blah blah
}
[ENABLE]
aobscan(campaign,8B 89 E8 00 00 00 3B) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(campaignBase)
alloc(campaignBase, 4)
newmem:
code:
mov [campaignBase], ecx
mov ecx,[ecx+000000E8]
jmp return
campaign:
jmp newmem
nop
return:
registersymbol(campaign)
[DISABLE]
campaign:
db 8B 89 E8 00 00 00
unregistersymbol(campaign)
dealloc(newmem)
unregistersymbol(campaignBase)
dealloc(campaignBase)
{
// ORIGINAL CODE - INJECTION POINT: FleetGroupPanel:BCGJEDKFCMM+8c
FleetGroupPanel:BCGJEDKFCMM+71: 74 05 - je FleetGroupPanel:BCGJEDKFCMM+78
FleetGroupPanel:BCGJEDKFCMM+73: 8B 45 0C - mov eax,[ebp+0C]
FleetGroupPanel:BCGJEDKFCMM+76: 2B D8 - sub ebx,eax
FleetGroupPanel:BCGJEDKFCMM+78: 8B 45 0C - mov eax,[ebp+0C]
FleetGroupPanel:BCGJEDKFCMM+7b: 8B 8E 90 00 00 00 - mov ecx,[esi+00000090]
FleetGroupPanel:BCGJEDKFCMM+81: 8B D1 - mov edx,ecx
FleetGroupPanel:BCGJEDKFCMM+83: 39 12 - cmp [edx],edx
FleetGroupPanel:BCGJEDKFCMM+85: 8B 49 2C - mov ecx,[ecx+2C]
FleetGroupPanel:BCGJEDKFCMM+88: 8B D1 - mov edx,ecx
FleetGroupPanel:BCGJEDKFCMM+8a: 39 12 - cmp [edx],edx
// ---------- INJECTING HERE ----------
FleetGroupPanel:BCGJEDKFCMM+8c: 8B 89 E8 00 00 00 - mov ecx,[ecx+000000E8]
// ---------- DONE INJECTING ----------
FleetGroupPanel:BCGJEDKFCMM+92: 3B C1 - cmp eax,ecx
FleetGroupPanel:BCGJEDKFCMM+94: 0F 9F C0 - setg al
FleetGroupPanel:BCGJEDKFCMM+97: 0F B6 C0 - movzx eax,al
FleetGroupPanel:BCGJEDKFCMM+9a: 85 C0 - test eax,eax
FleetGroupPanel:BCGJEDKFCMM+9c: 0F 94 C0 - sete al
FleetGroupPanel:BCGJEDKFCMM+9f: 0F B6 C0 - movzx eax,al
FleetGroupPanel:BCGJEDKFCMM+a2: 88 45 C0 - mov [ebp-40],al
FleetGroupPanel:BCGJEDKFCMM+a5: 8D 45 0C - lea eax,[ebp+0C]
FleetGroupPanel:BCGJEDKFCMM+a8: 89 04 24 - mov [esp],eax
FleetGroupPanel:BCGJEDKFCMM+ab: E8 58 3E A7 F8 - call System:Int32:ToString
}
113759
" Massive Alliance Points"
FF8000
Auto Assembler Script
[ENABLE]
aobscan(AlliancePoints,8B EC 83 EC 18 8B 45 0C 89 44 24 04 8B 45 08 89 04 24 E8 * * * * 8B 40 24 C9 C3 * * * * * * * * * * * * * * * * * * * * * EC 53 57 56 83 EC 1C 33 FF) // should be unique
alloc(newmem,$1000)
aobscan(allaince_points_two,8B 47 24 8B 4F 20 8B D8) // should be unique
alloc(newmem1,$1000)
label(code)
label(return)
label(code1)
label(return1)
newmem:
code:
mov [eax+24],#999
mov eax,[eax+24]
leave
ret
jmp return
AlliancePoints+17:
jmp newmem
return:
registersymbol(AlliancePoints)
newmem1:
code1:
mov [edi+24], #999
mov eax,[edi+24]
mov ecx,[edi+20]
jmp return1
allaince_points_two:
jmp newmem1
nop
return1:
registersymbol(allaince_points_two)
[DISABLE]
AlliancePoints+17:
db 8B 40 24 C9 C3
allaince_points_two:
db 8B 47 24 8B 4F 20
unregistersymbol(AlliancePoints)
dealloc(newmem)
unregistersymbol(allaince_points_two)
dealloc(newmem1)
{
// ORIGINAL CODE - INJECTION POINT: ACAKPLDDHJP:ACFCAJDJMAF+18
18A320E4: 00 00 - add [eax],al
18A320E6: 00 00 - add [eax],al
ACAKPLDDHJP:ACFCAJDJMAF: 55 - push ebp
ACAKPLDDHJP:ACFCAJDJMAF+1: 8B EC - mov ebp,esp
ACAKPLDDHJP:ACFCAJDJMAF+3: 83 EC 18 - sub esp,18
ACAKPLDDHJP:ACFCAJDJMAF+6: 8B 45 0C - mov eax,[ebp+0C]
ACAKPLDDHJP:ACFCAJDJMAF+9: 89 44 24 04 - mov [esp+04],eax
ACAKPLDDHJP:ACFCAJDJMAF+d: 8B 45 08 - mov eax,[ebp+08]
ACAKPLDDHJP:ACFCAJDJMAF+10: 89 04 24 - mov [esp],eax
ACAKPLDDHJP:ACFCAJDJMAF+13: E8 18 00 00 00 - call ACAKPLDDHJP:AJFFGDIKPNC
// ---------- INJECTING HERE ----------
ACAKPLDDHJP:ACFCAJDJMAF+18: 8B 40 24 - mov eax,[eax+24]
// ---------- DONE INJECTING ----------
ACAKPLDDHJP:ACFCAJDJMAF+1b: C9 - leave
ACAKPLDDHJP:ACFCAJDJMAF+1c: C3 - ret
18A32105: 00 00 - add [eax],al
18A32107: 00 68 88 - add [eax-78],ch
18A3210A: B4 9D - mov ah,-63
18A3210C: 30 E9 - xor cl,ch
18A3210E: EE - out dx,al
18A3210F: DF 76 EA - fbstp tword ptr [esi-16]
18A32112: 00 00 - add [eax],al
18A32114: 00 00 - add [eax],al
}
113763
"Fortified Colonies"
FF8000
Auto Assembler Script
[ENABLE]
aobscan(fortified,8B 45 F0 0F B6 40 10) // should be unique
alloc(newmem,$1000)
aobscan(fortified_two,0F B6 40 10 85 C0 74 1A) // should be unique
alloc(newmem1,$1000)
label(code)
label(return)
label(code1)
label(return1)
newmem:
code:
mov eax,[ebp-10]
mov [eax+10], #200
movzx eax,[eax+10]
jmp return
fortified:
jmp newmem
nop 2
return:
registersymbol(fortified)
newmem1:
code1:
mov [eax+10], #200
movzx eax, [eax+10]
test eax,eax
jmp return1
fortified_two:
jmp newmem1
nop
return1:
registersymbol(fortified_two)
[DISABLE]
fortified:
db 8B 45 F0 0F B6 40 10
fortified_two:
db 0F B6 40 10 85 C0
unregistersymbol(fortified)
dealloc(newmem)
unregistersymbol(fortified_two)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ACAKPLDDHJP:DFMMIAENLGF+37
ACAKPLDDHJP:DFMMIAENLGF+1c: 8B 46 0C - mov eax,[esi+0C]
ACAKPLDDHJP:DFMMIAENLGF+1f: 3B D8 - cmp ebx,eax
ACAKPLDDHJP:DFMMIAENLGF+21: 73 3C - jae ACAKPLDDHJP:DFMMIAENLGF+5f
ACAKPLDDHJP:DFMMIAENLGF+23: 8B 46 08 - mov eax,[esi+08]
ACAKPLDDHJP:DFMMIAENLGF+26: 8D 44 98 10 - lea eax,[eax+ebx*4+10]
ACAKPLDDHJP:DFMMIAENLGF+2a: 8B 00 - mov eax,[eax]
ACAKPLDDHJP:DFMMIAENLGF+2c: 89 45 F0 - mov [ebp-10],eax
ACAKPLDDHJP:DFMMIAENLGF+2f: 8B 40 0C - mov eax,[eax+0C]
ACAKPLDDHJP:DFMMIAENLGF+32: 3B 45 0C - cmp eax,[ebp+0C]
ACAKPLDDHJP:DFMMIAENLGF+35: 75 09 - jne ACAKPLDDHJP:DFMMIAENLGF+40
// ---------- INJECTING HERE ----------
ACAKPLDDHJP:DFMMIAENLGF+37: 8B 45 F0 - mov eax,[ebp-10]
// ---------- DONE INJECTING ----------
ACAKPLDDHJP:DFMMIAENLGF+3a: 0F B6 40 10 - movzx eax,byte ptr [eax+10]
ACAKPLDDHJP:DFMMIAENLGF+3e: EB 14 - jmp ACAKPLDDHJP:DFMMIAENLGF+54
ACAKPLDDHJP:DFMMIAENLGF+40: 47 - inc edi
ACAKPLDDHJP:DFMMIAENLGF+41: 8B 45 08 - mov eax,[ebp+08]
ACAKPLDDHJP:DFMMIAENLGF+44: 8B 40 1C - mov eax,[eax+1C]
ACAKPLDDHJP:DFMMIAENLGF+47: 8B C8 - mov ecx,eax
ACAKPLDDHJP:DFMMIAENLGF+49: 39 09 - cmp [ecx],ecx
ACAKPLDDHJP:DFMMIAENLGF+4b: 8B 40 0C - mov eax,[eax+0C]
ACAKPLDDHJP:DFMMIAENLGF+4e: 3B F8 - cmp edi,eax
ACAKPLDDHJP:DFMMIAENLGF+50: 7C BE - jl ACAKPLDDHJP:DFMMIAENLGF+10
}
3
"Tylium"
0
4 Bytes
campaignBase
E8
6
"RP"
0
4 Bytes
campaignBase
EC
113773
"<CurrentCylonThreatLevel> (unknown effect)"
0
Float
campaignBase
F0
113783
"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<All of the BYTES you Must select Yes or No on the right>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
0000FF
1
113765
"LimitFTLRange"
1:Yes
0:No
0
Byte
campaignBase
D0
113766
"AllowFLTCooldowns"
1:Yes
0:No
0
Byte
campaignBase
D1
113767
"Can Create Resource Missions"
1:Yes
0:No
0
Byte
campaignBase
D2
113768
"RemoveAllAlliance"
1:Yes
0:No
0
Byte
campaignBase
D5
113769
"GhostFleetActive"
1:Yes
0:No
0
Byte
campaignBase
D6
113771
"DisableTrade"
1:Yes
0:No
0
Byte
campaignBase
D7
113770
"DisableCylonThreat"
1:Yes
0:No
0
Byte
campaignBase
D8
113779
"AICanBuildFleets"
1:Yes
0:No
0
Byte
campaignBase
f4
113778
"AICanMoveFleets"
1:Yes
0:No
0
Byte
campaignBase
f5
113777
"AIFleetsIgnoreJumpRestrictions"
1:Yes
0:No
0
Byte
campaignBase
f6
113776
"AIFleetsIgnoreJumpCooldowns"
1:Yes
0:No
0
Byte
campaignBase
f7
113775
"AIFleetsJumpDestinationOverride"
1:Yes
0:No
0
Byte
campaignBase
f8
113774
"AIBuildFleetCooldown"
1:Yes
0:No
0
Byte
campaignBase
fc
113780
"CylonFTLCooldown"
1:Yes
0:No
0
Byte
campaignBase
100
113781
"CreateCommanders -> Turn on for more officers"
1:Yes
0:No
0
FF8000
Byte
campaignBase
104
113772
"GenerateCommanderSeed (unsure)???"
1:Yes
0:No
0
000000
4 Bytes
campaignBase
E4
113786
"Round"
0
4 Bytes
campaignBase
B0
113787
"LastStoryMissionCompleted"
1:Yes
0:No
0
4 Bytes
campaignBase
B8
113788
"ActiveStoryMission"
0
4 Bytes
campaignBase
BC
113789
"MissionsCompleted"
0
4 Bytes
campaignBase
B4
113748
"not used"
1
113741
"Original works"
Auto Assembler Script
[ENABLE]
aobscan(Playership,1B 8B BB 88 02 00 00) // should be unique
alloc(shipbase,$4048)
alloc(ship,8)
registersymbol(ship)
label(code)
label(return)
label(exit_shipbase)
label(hull)
label(exit_hull)
label(repairs)
label(repairs_exit)
label(subsytem_start)
label(subsystem_end)
label(firewall_begin)
label(firewall_end)
label(move_start)
label(move_end)
label(dradis_range)
label(dradis_range_exit)
shipbase:
mov edi,[ebx+00000288] //original code
push edi
push ebx
cmp byte ptr [ebx+000002A8],00 //test if player
jne code
mov [ship],ebx //<--Ship base
exit_shipbase:
repairs:
test edi, edi
je code
mov [edi+40], (float)99999
mov [edi+44], (float)99999
mov [edi+48], (float)99999
mov [edi+4C], (float)99999
mov [edi+50], (float)99999
mov [edi+54], (float)99999
mov [edi+58], (float)99999
repairs_exit:
hull:
mov edi, [edi+30]
test edi, edi
je code
mov [edi+0C], (float)999999
mov [edi+14], (float)999999
exit_hull:
subsytem_start:
mov edi,[ebx+00000288]
test edi,edi
je code
mov edi,[edi+34]
test edi,edi
je code
mov ebx,[edi+10]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+14]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+18]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+1C]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+20]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
mov ebx,[edi+24]
test ebx,ebx
je code
mov ebx,[ebx+24]
test ebx,ebx
je code
fld dword ptr [ebx+0C]
fstp dword ptr [ebx+14]
subsystem_end:
move_start:
mov ebx,[ship] //<<----Put it at Ships base, the very beginning of structure easy now!
cmp byte ptr [ebx+294], #4 //Test for fighter
je code
test ebx, ebx
je code
mov [ebx+2B0], (float)1.5 //Max Turnrate
mov [ebx+2B4], (float)180 //Max Pitch
mov [ebx+2B8], (float)2 //Max Yaw
mov edi, [ebx+124]
test edi, edi
je code
mov [edi+10], (float)0 //MinVelocity
mov [edi+14], (float)50 //MaxVelocity
move_end:
dradis_range:
mov [ebx+2A0],(float)9999
dradis_range_exit:
firewall_begin:
cmp [ebx+1A0],0
je code
mov edi, [ebx+1A0]
test edi, edi
je code
mov [edi+3C], (float)9999//Max Defence Points
mov [edi+40], (float)9999//Regen Rate
mov [edi+4C], (float)9999//Current Defence points
firewall_end:
code:
pop edi
pop ebx
mov edi,[ebx+00000288]
jmp return
Playership+01:
jmp shipbase
nop
return:
registersymbol(Playership)
[DISABLE]
Playership+01:
db 8B BB 88 02 00 00
unregistersymbol(Playership)
dealloc(shipbase)
dealloc(ship)
unregistersymbol(ship)
4
"Resources and CampagnState (open Build Ships to populate)"
FF0000
Auto Assembler Script
[ENABLE]
aobscan(resource,8B 89 E8 00 00 00 3B C1 0F 9F) // should be unique
alloc(newmem,$4000)
label(code)
label(return)
registersymbol(Campaignbase)
registersymbol(CampaignManager_tyliumset_enable)
registersymbol(CampaignManager_rpset_enable)
//registersymbol(CampaignManager_colonyset_enable)
registersymbol(CampaignManager_ftlset_enable)
alloc(Campaignbase, 4)
alloc(CampaignManager_update_enable, 4)
alloc(CampaignManager_set_enable, 4)
alloc(CampaignManager_tyliumset_enable, 4)
alloc(CampaignManager_rpset_enable, 4)
alloc(CampaignManager_colonyset_enable, 4)
alloc(CampaignManager_ftlset_enable, 4)
label(CampaignManager_tyliumset_exit)
label(CampaignManager_rpset_exit)
//label(CampaignManager_colonyset_exit)
//label(CampaignManager_colonyset_entry)
label(CampaignManager_ftlset_exit)
newmem:
mov ecx,[ecx+000000E8]
push ecx
push ebx
push edi
mov [Campaignbase], ecx
cmp dword ptr [CampaignManager_tyliumset_enable], #0
je CampaignManager_tyliumset_exit
mov [ecx+000000E8], #999999
mov ecx,[ecx+000000E8]
CampaignManager_tyliumset_exit:
cmp dword ptr [CampaignManager_rpset_enable], #0
je CampaignManager_rpset_exit
mov ebx, [Campaignbase]
test ebx, ebx
je CampaignManager_tyliumset_exit
mov [ebx+EC], #999999
CampaignManager_rpset_exit:
cmp dword ptr [CampaignManager_ftlset_enable], #0
je CampaignManager_ftlset_exit
mov ebx, [Campaignbase]
test ebx, ebx
je CampaignManager_ftlset_exit
mov byte ptr [ebx+D0], #0 //Limit FLT Range
mov byte ptr [ebx+D1], #0 //Allow Cooldown
CampaignManager_ftlset_exit:
{CampaignManager_colonyset_entry:
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+14]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+18]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+1C]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+20]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+24]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+28]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+2C]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+30]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
cmp dword ptr [CampaignManager_colonyset_enable], #0
je CampaignManager_colonyset_exit
mov ebx, [Campaignbase]
test ebx , ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+1C]
test ebx, ebx
je CampaignManager_colonyset_exit
mov ebx, [ebx+8]
test ebx, ebx
je CampaignManager_colonyset_exit
mov edi, [ebx+10]
test edi, edi
je CampaignManager_colonyset_exit
mov edi, [ebx+34]
test edi, edi
je CampaignManager_colonyset_exit
mov byte ptr [edi+10], #1 //Fortified
mov byte ptr [edi+11], #0 //Hostile
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+20], #200 //Last AlliancePoints
mov byte ptr [edi+28], #1 //AlliancePoints Status?
CampaignManager_colonyset_exit:}
code:
pop ecx
pop ebx
pop edi
mov ecx,[ecx+000000E8]
jmp return
resource:
jmp newmem
nop
return:
registersymbol(resource)
[DISABLE]
resource:
db 8B 89 E8 00 00 00
unregistersymbol(resource)
dealloc(newmem)
unregistersymbol(Campaignbase)
unregistersymbol(CampaignManager_tyliumset_enable)
unregistersymbol(CampaignManager_rpset_enable)
unregistersymbol(CampaignManager_colonyset_enable)
unregistersymbol(CampaignManager_ftlset_enable)
dealloc(Campaignbase)
dealloc(CampaignManager_update_enable)
dealloc(CampaignManager_set_enable)
dealloc(CampaignManager_tyliumset_enable)
dealloc(CampaignManager_rpset_enable)
dealloc(CampaignManager_colonyset_enable)
dealloc(CampaignManager_ftlset_enable)
{
// ORIGINAL CODE - INJECTION POINT: 230C4784
230C4769: 74 05 - je 230C4770
230C476B: 8B 45 0C - mov eax,[ebp+0C]
230C476E: 2B D8 - sub ebx,eax
230C4770: 8B 45 0C - mov eax,[ebp+0C]
230C4773: 8B 8E 90 00 00 00 - mov ecx,[esi+00000090]
230C4779: 8B D1 - mov edx,ecx
230C477B: 39 12 - cmp [edx],edx
230C477D: 8B 49 2C - mov ecx,[ecx+2C]
230C4780: 8B D1 - mov edx,ecx
230C4782: 39 12 - cmp [edx],edx
// ---------- INJECTING HERE ----------
230C4784: 8B 89 E8 00 00 00 - mov ecx,[ecx+000000E8]
// ---------- DONE INJECTING ----------
230C478A: 3B C1 - cmp eax,ecx
230C478C: 0F 9F C0 - setg al
230C478F: 0F B6 C0 - movzx eax,al
230C4792: 85 C0 - test eax,eax
230C4794: 0F 94 C0 - sete al
230C4797: 0F B6 C0 - movzx eax,al
230C479A: 88 45 C0 - mov [ebp-40],al
230C479D: 8D 45 0C - lea eax,[ebp+0C]
230C47A0: 89 04 24 - mov [esp],eax
230C47A3: E8 40 8C 08 F5 - call 1814D3E8
}
86
"Base Address"
0
0000FF
4 Bytes
getAddress('BSG.exe')
87
"End Module"
0
4 Bytes
getAddress('BSG.exe') + getModuleSize('BSG.exe')
113689
"Ship Base"
0
0000FF
4 Bytes
ship
0
113730
"Infinite Missile Ammo (bad-shared address)"
FF8000
Auto Assembler Script
[ENABLE]
aobscan(missile_ammo,8D 54 BA 10 8B 12 89 50 0C) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
pushf
//cmp [[ship]+2A8], 00
//cmp [edx+B38], 0 //B38,FD8,10F8=0
//jne code
cmp [[ship]+74], 00
jne code
popf
lea edx,[edx+edi*4+10]
mov [edx], #73
mov edx,[edx]
jmp return
code:
popf
lea edx,[edx+edi*4+10]
mov edx,[edx]
jmp return
missile_ammo:
jmp newmem
nop
return:
registersymbol(missile_ammo)
[DISABLE]
missile_ammo:
db 8D 54 BA 10 8B 12
unregistersymbol(missile_ammo)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ShipInfo:GetMunitionsSlotStatusData+1fb
ShipInfo:GetMunitionsSlotStatusData+1d4: 39 5E 0C - cmp [esi+0C],ebx
ShipInfo:GetMunitionsSlotStatusData+1d7: 0F 86 C6 00 00 00 - jbe ShipInfo:GetMunitionsSlotStatusData+2a3
ShipInfo:GetMunitionsSlotStatusData+1dd: 6B CB 18 - imul ecx,ebx,18
ShipInfo:GetMunitionsSlotStatusData+1e0: 8B C6 - mov eax,esi
ShipInfo:GetMunitionsSlotStatusData+1e2: 03 C1 - add eax,ecx
ShipInfo:GetMunitionsSlotStatusData+1e4: 05 10 00 00 00 - add eax,00000010
ShipInfo:GetMunitionsSlotStatusData+1e9: 8B 4D 08 - mov ecx,[ebp+08]
ShipInfo:GetMunitionsSlotStatusData+1ec: 8B 91 10 02 00 00 - mov edx,[ecx+00000210]
ShipInfo:GetMunitionsSlotStatusData+1f2: 39 7A 0C - cmp [edx+0C],edi
ShipInfo:GetMunitionsSlotStatusData+1f5: 0F 86 A1 00 00 00 - jbe ShipInfo:GetMunitionsSlotStatusData+29c
// ---------- INJECTING HERE ----------
ShipInfo:GetMunitionsSlotStatusData+1fb: 8D 54 BA 10 - lea edx,[edx+edi*4+10]
// ---------- DONE INJECTING ----------
ShipInfo:GetMunitionsSlotStatusData+1ff: 8B 12 - mov edx,[edx]
ShipInfo:GetMunitionsSlotStatusData+201: 89 50 0C - mov [eax+0C],edx
ShipInfo:GetMunitionsSlotStatusData+204: 39 5E 0C - cmp [esi+0C],ebx
ShipInfo:GetMunitionsSlotStatusData+207: 0F 86 88 00 00 00 - jbe ShipInfo:GetMunitionsSlotStatusData+295
ShipInfo:GetMunitionsSlotStatusData+20d: 6B D3 18 - imul edx,ebx,18
ShipInfo:GetMunitionsSlotStatusData+210: 8B C6 - mov eax,esi
ShipInfo:GetMunitionsSlotStatusData+212: 03 C2 - add eax,edx
ShipInfo:GetMunitionsSlotStatusData+214: 05 10 00 00 00 - add eax,00000010
ShipInfo:GetMunitionsSlotStatusData+219: 8B 91 08 02 00 00 - mov edx,[ecx+00000208]
ShipInfo:GetMunitionsSlotStatusData+21f: 39 7A 0C - cmp [edx+0C],edi
}