Initial plugins and other stuff commit
This commit is contained in:
@@ -0,0 +1,287 @@
|
||||
require(GlobalDependencys:GetDependency("StandardBase"):GetPackageName())
|
||||
|
||||
--GAME VARS
|
||||
fAdditionalHUDWidth = 1
|
||||
fAdditionalHUDHeight = 1
|
||||
|
||||
--ControlVars
|
||||
bFixEnabled = true
|
||||
bHUDSafeZone = true
|
||||
bArFix = true
|
||||
bArFix2 = true
|
||||
bArFix3 = true
|
||||
|
||||
--PROCESS VARS
|
||||
Process_FriendlyName = Module:GetFriendlyName()
|
||||
Process_WindowName = "*"
|
||||
Process_ClassName = "*"
|
||||
Process_EXEName = "MassEffectAndromeda.exe"
|
||||
|
||||
--INJECTION BEHAVIOUR
|
||||
InjectDelay = 200
|
||||
WriteInterval = 5000
|
||||
SearchInterval = 1000
|
||||
SuspendThread = true
|
||||
|
||||
--Name Manual/Auto/Hybrid Steam/Origin/Any IncludeFile:Configure;Enable;Periodic;Disable;
|
||||
SupportedVersions = {
|
||||
{"Automatically Detect", "Manual", "Any", "Configure_SignatureScan;Enable_Inject;Periodic;Disable_Inject;"},
|
||||
}
|
||||
|
||||
function Init_Controls()
|
||||
DefaultControls.AddHeader("Header_FOV","HUD safe zone adjustment",15,70,210,17)
|
||||
DefaultControls.AddFOVSlider("HUDWidthSlider","HUD_Width_SafeZone_Changed",55,100,125,35)
|
||||
DefaultControls.AddFOVSlider("HUDHeightSlider","HUD_Height_SafeZone_Changed",55,160,125,35)
|
||||
DefaultControls.AddHeader("Ind_fixes","Individual fixes",245,70,210,17)
|
||||
DefaultControls.AddFixToggle("CKARatio","Aspect ratio","CKARatio_Changed",250,95,180,14)
|
||||
DefaultControls.AddFixToggle("CKHUD","HUD safe zones","CKHUD_Changed",250,115,180,14)
|
||||
end
|
||||
|
||||
function Configure_SignatureScan()
|
||||
local tAddress = HackTool:AddAddress("HUDHeightFix")
|
||||
if HackTool:SignatureScan("488B88A08700000F28DC",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
|
||||
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
|
||||
else
|
||||
print( tAddress:GetInfo(TYPE_ADDRESS))
|
||||
end
|
||||
|
||||
local tAddress = HackTool:AddAddress("HUDWidthFix")
|
||||
if HackTool:SignatureScan("488B88A087000048894D67",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
|
||||
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
|
||||
else
|
||||
print( tAddress:GetInfo(TYPE_ADDRESS))
|
||||
end
|
||||
|
||||
local tAddress = HackTool:AddAddress("ArFix")
|
||||
if HackTool:SignatureScan("0F2FB0????????0F92",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
|
||||
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
|
||||
else
|
||||
print( tAddress:GetInfo(TYPE_ADDRESS))
|
||||
end
|
||||
|
||||
local tAddress = HackTool:AddAddress("ArFix2")
|
||||
if HackTool:SignatureScan("C780DC00000000000000E86C",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
|
||||
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
|
||||
else
|
||||
print( tAddress:GetInfo(TYPE_ADDRESS))
|
||||
end
|
||||
|
||||
local tAddress = HackTool:AddAddress("ArFix3")
|
||||
if HackTool:SignatureScan("C780DC000000398EE33F",tAddress,PAGE_EXECUTE_READ,0x00,Process_EXEName) == 0 then
|
||||
return ErrorOccurred(string.format(SigScanError,tAddress:GetName()))
|
||||
else
|
||||
print( tAddress:GetInfo(TYPE_ADDRESS))
|
||||
end
|
||||
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function Enable_Inject()
|
||||
local Variables = HackTool:AllocateMemory("Variables",0)
|
||||
Variables:PushFloat("HUDRender_Width")
|
||||
Variables:PushFloat("HUDRender_Height")
|
||||
Variables:PushFloat("AspectRatio")
|
||||
Variables:PushFloat("AspectRatioZero")
|
||||
Variables:PushFloat("GameWidth")
|
||||
Variables:PushFloat("GameHeight")
|
||||
Variables:PushFloat("AspectRatioPointer")
|
||||
Variables:Allocate()
|
||||
|
||||
ResolutionChanged()
|
||||
|
||||
local asm = [[
|
||||
(codecave:jmp)HUDWidthFix,HUDWidthFix_cc:
|
||||
mov rcx,[(allocation)Variables->HUDRender_Width]
|
||||
jmp %returnaddress%
|
||||
%end%
|
||||
|
||||
; MassEffectAndromeda.exe+11EE59A: 45 85 FF - test r15d,r15d
|
||||
; MassEffectAndromeda.exe+11EE59D: 74 3C - je MassEffectAndromeda.exe+11EE5DB
|
||||
; MassEffectAndromeda.exe+11EE59F: 48 8B 05 A2 82 0E 03 - mov rax,[MassEffectAndromeda.exe+42D6848]
|
||||
; ---------- INJECTING HERE ----------
|
||||
; MassEffectAndromeda.exe+11EE5A6: 48 8B 88 A0 87 00 00 - mov rcx,[rax+000087A0]
|
||||
; ---------- DONE INJECTING ----------
|
||||
; MassEffectAndromeda.exe+11EE5AD: 48 89 4D 67 - mov [rbp+67],rcx
|
||||
; MassEffectAndromeda.exe+11EE5B1: F3 0F 10 35 07 FC E7 01 - movss xmm6,[MassEffectAndromeda.exe+306E1C0]
|
||||
; MassEffectAndromeda.exe+11EE5B9: F3 0F 5C 75 67 - subss xmm6,[rbp+67]
|
||||
|
||||
(codecave:jmp)HUDHeightFix,HUDHeightFix_cc:
|
||||
mov rcx,[(allocation)Variables->HUDRender_Width]
|
||||
movss [(allocation)Variables->GameWidth],xmm4
|
||||
movss [(allocation)Variables->GameHeight],xmm0
|
||||
jmp %returnaddress%
|
||||
%end%
|
||||
|
||||
; MassEffectAndromeda.exe+A824F8: F3 0F 10 35 C0 BC 5E 02 - movss xmm6,[MassEffectAndromeda.exe+306E1C0]
|
||||
; MassEffectAndromeda.exe+A82500: 48 8B 05 41 43 85 03 - mov rax,[MassEffectAndromeda.exe+42D6848]
|
||||
; MassEffectAndromeda.exe+A82507: 48 8B 3D 62 81 86 03 - mov rdi,[MassEffectAndromeda.exe+42EA670]
|
||||
; ---------- INJECTING HERE ----------
|
||||
; MassEffectAndromeda.exe+A8250E: 48 8B 88 A0 87 00 00 - mov rcx,[rax+000087A0]
|
||||
; ---------- DONE INJECTING ----------
|
||||
; MassEffectAndromeda.exe+A82515: 0F 28 DC - movaps xmm3,xmm4
|
||||
; MassEffectAndromeda.exe+A82518: 0F 28 D0 - movaps xmm2,xmm0
|
||||
; MassEffectAndromeda.exe+A8251B: 44 0F 28 CE - movaps xmm9,xmm6
|
||||
|
||||
(codecave:jmp)ArFix,ArFix_cc:
|
||||
push rbx
|
||||
mov rbx,[(allocation)Variables->AspectRatioZero]
|
||||
cmp [(allocation)Variables->AspectRatioPointer],rbx
|
||||
jne ARFix
|
||||
mov [(allocation)Variables->AspectRatioPointer],rax
|
||||
|
||||
ARFix:
|
||||
sub esp, 16 ; allocate space on stack
|
||||
movdqu dqword [esp], xmm0 ; push xmm0
|
||||
sub esp, 16 ; allocate space on stack
|
||||
movdqu dqword [esp], xmm1 ; push xmm1
|
||||
movss xmm0,[(allocation)Variables->GameWidth]
|
||||
movss xmm1,[(allocation)Variables->GameHeight]
|
||||
divss xmm0,xmm1 ; calculate aspect ratio based on game window resolution
|
||||
movss [(allocation)Variables->AspectRatio],xmm0
|
||||
movdqu xmm1, dqword [esp] ; pop xmm1
|
||||
add esp, 16 ; re-align stack
|
||||
movdqu xmm0, dqword [esp] ; pop xmm0
|
||||
add esp, 16 ; re-align stack
|
||||
mov rbx,[(allocation)Variables->AspectRatio]
|
||||
mov [rax+0x000000DC],rbx
|
||||
pop rbx
|
||||
comiss xmm6,[rax+0x000000DC]
|
||||
jmp %returnaddress%
|
||||
%end%
|
||||
|
||||
; MassEffectAndromeda.exe+F28B5E: 48 89 05 2B B9 4D 03 - mov [MassEffectAndromeda.exe+4404490],rax
|
||||
; MassEffectAndromeda.exe+F28B65: 48 85 C0 - test rax,rax
|
||||
; MassEffectAndromeda.exe+F28B68: 74 1F - je MassEffectAndromeda.exe+F28B89
|
||||
; ---------- INJECTING HERE ----------
|
||||
;MassEffectAndromeda.exe+F28B6A: 0F 2F B0 DC 00 00 00 - comiss xmm6,[rax+000000DC]
|
||||
; ---------- DONE INJECTING ----------
|
||||
; MassEffectAndromeda.exe+F28B71: 0F 92 C1 - setb cl
|
||||
; MassEffectAndromeda.exe+F28B74: 3A 8B 56 F8 01 00 - cmp cl,[rbx+0001F856]
|
||||
; MassEffectAndromeda.exe+F28B7A: 88 8B 56 F8 01 00 - mov [rbx+0001F856],cl
|
||||
|
||||
(codecave)ArFix2,ArFix2_cc:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
%end%
|
||||
|
||||
; MassEffectAndromeda.exe+5BBA4F: 48 8B D3 - mov rdx,rbx
|
||||
; MassEffectAndromeda.exe+5BBA52: 48 8B CF - mov rcx,rdi
|
||||
; ---------- INJECTING HERE ----------
|
||||
; MassEffectAndromeda.exe+5BBA55: C7 80 DC 00 00 00 00 00 00 00 - mov [rax+000000DC],00000000
|
||||
; ---------- DONE INJECTING ----------
|
||||
; MassEffectAndromeda.exe+5BBA5F: E8 6C 52 FF FF - call MassEffectAndromeda.exe+5B0CD0
|
||||
; MassEffectAndromeda.exe+5BBA64: 48 85 C0 - test rax,rax
|
||||
|
||||
(codecave)ArFix3,ArFix3_cc:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
%end%
|
||||
|
||||
; MassEffectAndromeda.exe+5BB9B7: 48 8B 0D E2 09 AF 03 - mov rcx,[MassEffectAndromeda.exe+40AC3A0]
|
||||
; MassEffectAndromeda.exe+5BB9BE: E8 ED B9 CE FF - call MassEffectAndromeda.ANTITAMPER_TESTVALUE_CODEMARKER+2120
|
||||
; ---------- INJECTING HERE ----------
|
||||
; MassEffectAndromeda.exe+5BB9C3: C7 80 DC 00 00 00 39 8E E3 3F - mov [rax+000000DC],3FE38E39 (16/9 ratio)
|
||||
; ---------- DONE INJECTING ----------
|
||||
; MassEffectAndromeda.exe+5BB9CD: 48 8B 0D DC 0C D1 03 - mov rcx,[MassEffectAndromeda.exe+42CC6B0]
|
||||
; MassEffectAndromeda.exe+5BB9D4: 48 8B D3 - mov rdx,rbx
|
||||
|
||||
]]
|
||||
|
||||
if HackTool:CompileAssembly(asm,"HUDWidthFix") == nil then
|
||||
return ErrorOccurred("Assembly compilation failed...")
|
||||
else
|
||||
Toggle_CodeCave("HUDWidthFix_cc",bHUDSafeZone)
|
||||
Toggle_CodeCave("HUDHeightFix_cc",bHUDSafeZone)
|
||||
Toggle_CodeCave("ArFix_cc",bArFix)
|
||||
Toggle_CodeCave("ArFix2_cc",bArFix2)
|
||||
Toggle_CodeCave("ArFix3_cc",bArFix3)
|
||||
end
|
||||
end
|
||||
|
||||
function Periodic()
|
||||
local Variables = HackTool:GetAllocation("Variables")
|
||||
local HUD_Width_Safe_Zone = (fAdditionalHUDWidth + 75) / 100
|
||||
local HUD_Height_Safe_Zone = (fAdditionalHUDHeight + 80) / 100
|
||||
|
||||
if Variables and Variables["HUDRender_Width"] and Variables["HUDRender_Height"] then
|
||||
Variables["HUDRender_Width"]:WriteFloat( HUD_Width_Safe_Zone )
|
||||
Variables["HUDRender_Height"]:WriteFloat( HUD_Height_Safe_Zone )
|
||||
end
|
||||
end
|
||||
|
||||
function Disable_Inject()
|
||||
CleanUp()
|
||||
end
|
||||
|
||||
function ResolutionChanged()
|
||||
end
|
||||
|
||||
function HUDSafeZone()
|
||||
end
|
||||
|
||||
function HK_IncreaseFOV()
|
||||
HUDWidthSlider:OffsetPosition(1)
|
||||
end
|
||||
|
||||
function HK_DecreaseFOV()
|
||||
HUDWidthSlider:OffsetPosition(-1)
|
||||
end
|
||||
|
||||
function HUD_Width_SafeZone_Changed(Sender)
|
||||
fAdditionalHUDWidth = Sender:GetScaledFloat(4)
|
||||
fAdditionalHUDWidth = Round(fAdditionalHUDWidth,2)
|
||||
lblHUDWidthSlider.Caption:SetCaption( string.format("HUD width safe zone : %.2f",(fAdditionalHUDWidth + 75)))
|
||||
|
||||
ForceUpdate()
|
||||
end
|
||||
|
||||
function HUD_Height_SafeZone_Changed(Sender)
|
||||
fAdditionalHUDHeight = Sender:GetScaledFloat(6)
|
||||
fAdditionalHUDHeight = Sender:GetScaledFloat(5)
|
||||
fAdditionalHUDHeight = Round(fAdditionalHUDHeight,2)
|
||||
lblHUDHeightSlider.Caption:SetCaption( string.format("HUD height safe zone : %.2f",fAdditionalHUDHeight + 80))
|
||||
|
||||
ForceUpdate()
|
||||
end
|
||||
|
||||
function CKARatio_Changed(Sender)
|
||||
local Variables = HackTool:GetAllocation("Variables")
|
||||
bArFix = Toggle_CheckFix(Sender)
|
||||
bArFix2 = Toggle_CheckFix(Sender)
|
||||
bArFix3 = Toggle_CheckFix(Sender)
|
||||
Toggle_CodeCave("ArFix_cc",bArFix)
|
||||
Toggle_CodeCave("ArFix2_cc",bArFix2)
|
||||
Toggle_CodeCave("ArFix3_cc",bArFix3)
|
||||
end
|
||||
|
||||
function CKHUD_Changed(Sender)
|
||||
bHUDSafeZone = Toggle_CheckFix(Sender)
|
||||
Toggle_CodeCave("HUDWidthFix_cc",bHUDSafeZone)
|
||||
Toggle_CodeCave("HUDHeightFix_cc",bHUDSafeZone)
|
||||
end
|
||||
|
||||
function Init()
|
||||
Init_BaseControls()
|
||||
Init_Controls()
|
||||
end
|
||||
|
||||
function DeInit()
|
||||
DisableFix()
|
||||
end
|
||||
Reference in New Issue
Block a user