KalasDev Master Cheater Reputation: 1
Joined: 29 May 2016 Posts: 311
|
Posted: Tue Feb 28, 2017 12:52 pm Post subject: Lua Script / Help? |
|
|
So I used the CETrainer Generator from here, this is my code:
Code: | function CreateTrainer()
local HackData = {};
function HackData:HacksData()
self.trainer.form.Caption = [[Metal Gear Solid V Trainer]]
self.trainer.title.Caption = [[]]
self.trainer.credits.Caption = [[ Hack was made by Kalas]]
self.hacktable = {
{'Infinite Health',[[aobscanmodule(aobHealth,mgsvtpp.exe,F3 41 0F 11 16 * * * * C8)
alloc(newmem,$100,"mgsvtpp.exe"+4124F14)
label(code)
label(return)
newmem:
code:
movss [r14],xmm3 // XMM3 Stores Player Cap.
jmp return
aobHealth:
jmp newmem
return:
registersymbol(aobHealth)]],[[]],[[Enabled]], 'true',[[Disabled]],[[aobHealth:
db F3 41 0F 11 16
unregistersymbol(aobHealth)
dealloc(newmem)]]},
{'Infinite Ammo',[[aobscanmodule(aobAmmo,mgsvtpp.exe,66 44 89 1C 48 49)
alloc(newmem,$100,"mgsvtpp.exe"+3E02EA9)
aobscanmodule(aobAmmo_INV,mgsvtpp.exe,66 41 0F 42 D1)
alloc(newmema,$100,"mgsvtpp.exe"+3E02EED)
label(code)
label(return)
label(codea)
label(returna)
newmem:
code:
mov r11,[rax+rcx*2] // Ammo in Chamber.
mov [rax+rcx*2],r11w
jmp return
aobAmmo:
jmp newmem
return:
registersymbol(aobAmmo)
newmema:
codea:
//cmovb dx,r9w // Ammo in Invetory.
jmp returna
aobAmmo_INV:
jmp newmema
returna:
registersymbol(aobAmmo_INV)]],[[]],[[Enabled]], 'true',[[aobAmmo:
db 66 44 89 1C 48
unregistersymbol(aobAmmo)
dealloc(newmem)
aobAmmo_INV:
db 66 41 0F 42 D1
unregistersymbol(aobAmmo_INV)
dealloc(newmema)]],[[Disabled]]},
{'Infinite Suppressor',[[aobscanmodule(aobSup,mgsvtpp.exe,46 88 4C 01 04)
alloc(newmem,$100,"mgsvtpp.exe"+3E032F0)
label(code)
label(return)
newmem:
code:
mov r9,10 // 10 (HEX) = 16 (INT) - Mov 16 to R9.
mov [rcx+r8+04],r9l
jmp return
aobSup:
jmp newmem
return:
registersymbol(aobSup)]],[[]],[[Enabled]], 'true',[[aobSup:
db 46 88 4C 01 04
unregistersymbol(aobSup)
dealloc(newmem)]],[[Disabled]]},
{'Infinite GMP',[[aobscanmodule(aobMoney,mgsvtpp.exe,89 07 80 8B 88 0E 00 00 05)
alloc(newmem,$100,"mgsvtpp.exe"+3E97754)
label(code)
label(return)
newmem:
code:
mov eax,(int)5000000 // Mov 5Mil to eax.
mov [rdi],eax
or byte ptr [rbx+00000E88],05
jmp return
aobMoney:
jmp newmem
nop
nop
nop
nop
return:
registersymbol(aobMoney)]],[[]],[[Enabled]], 'true',[[aobMoney:
db 89 07 80 8B 88 0E 00 00 05
unregistersymbol(aobMoney)
dealloc(newmem)]],[[Disabled]]},
{'Infinite Timer',[[aobscanmodule(aobTimer,mgsvtpp.exe,F3 0F 11 8B E4 00 00 00 77)
registersymbol(aobTimer)
aobTimer:
db 90 90 90 90 90 90 90 90]],[[]],[[Enabled]], 'true',[[aobTimer:
db F3 0F 11 8B E4 00 00 00
unregistersymbol(aobTimer)]],[[Disabled]]},
{'No Recoil / No Spread',[[aobscanmodule(aobRecoil,mgsvtpp.exe,89 86 98 00 00 00 * * * * C0)
registersymbol(aobRecoil)
aobRecoil:
db 90 90 90 90 90 90
aobscanmodule(aobSpread,mgsvtpp.exe,F3 0F 11 4E 3C 0F B7 46 20 66 0F 6E C0 0F 5B C0 * * * * C0 48 FF C9 75)
registersymbol(aobSpread)
aobSpread:
db 90 90 90 90 90
aobscanmodule(aobSpread2,mgsvtpp.exe,89 86 98 00 00 00 F3)
alloc(newmem,$100,"mgsvtpp.exe"+3F17176)
aobscanmodule(aobFirstPerson1,mgsvtpp.exe,F3 44 0F 11 96 C8 00 00 00 48)
alloc(newmema,$100,"mgsvtpp.exe"+3F193EE)
aobscanmodule(aobFirstPerson2,mgsvtpp.exe,F3 0F 11 96 B8 00 00 00)
registersymbol(aobFirstPerson2)
aobFirstPerson2:
db 90 90 90 90 90 90 90 90
label(code)
label(return)
newmem:
code:
mov eax,(float)0
mov [rsi+00000098],eax
jmp return
aobSpread2:
jmp newmem
nop
return:
registersymbol(aobSpread2)
label(codea)
label(returna)
newmema:
codea:
movss [rsi+000000C8],xmm10
mov [rsi+C8],(float)0
jmp returna
aobFirstPerson1:
jmp newmema
nop
nop
nop
nop
returna:
registersymbol(aobFirstPerson1)]],[[]],[[Enabled]], 'true',[[aobRecoil:
db 89 86 98 00 00 00
unregistersymbol(aobRecoil)
aobSpread:
db F3 0F 11 4E 3C
unregistersymbol(aobSpread)
aobSpread2:
db 89 86 98 00 00 00
unregistersymbol(aobSpread2)
dealloc(newmem)
aobFirstPerson2:
db F3 0F 11 96 B8 00 00 00
unregistersymbol(aobFirstPerson2)
aobFirstPerson1:
db F3 44 0F 11 96 C8 00 00 00
unregistersymbol(aobFirstPerson1)
dealloc(newmema)]],[[Disabled]]}
};
for i=1,#self.hacktable do
strings_add(self.listitems, self.hacktable[i][1]);
self.hackstatus[i] = false;
end
end
function HackData:Info()
self.activateall = false; -- State.
self.hackstatus = {};
self.trainer = {};
self.trainer.form = createForm(false);
self.trainer.form.onClose = function (sender) sender.hide(); closeCE(); end;
self.trainer.form.width = 400;
self.trainer.form.height = 300;
setProperty(self.trainer.form, 'Position', 'poScreenCenter');
setProperty(self.trainer.form, 'BorderIcons', '[biSystemMenu]');
setProperty(self.trainer.form, 'BiDiMode', 'bdLeftToRight');
self.trainer.credits = createLabel(self.trainer.form);
self.trainer.title = createLabel(self.trainer.form);
local FontHeight = getProperty(self.trainer.title, 'Font');
setProperty(FontHeight , 'Color', 0x000000FE);
setProperty(FontHeight , 'Style', '[fsBold]');
setProperty(FontHeight , 'Height', '20');
self.trainer.group = createGroupBox(self.trainer.form);
self.trainer.subtitle = createLabel(self.trainer.group);
local FontHeight = getProperty(self.trainer.subtitle, 'Font');
setProperty(FontHeight , 'Color', 0x00007F00);
setProperty(FontHeight , 'Style', '[fsBold]');
setProperty(FontHeight , 'Height', '16');
self.trainer.desctitle = createLabel(self.trainer.group);
local FontHeight = getProperty(self.trainer.desctitle, 'Font');
setProperty(FontHeight , 'Color', 0x00F21200);
self.trainer.desc = createLabel(self.trainer.group);
self.trainer.list = createListBox(self.trainer.group);
self.trainer.enable = createButton(self.trainer.group);
self.trainer.enableall = createButton(self.trainer.group);
local x,y = control_getSize(self.trainer.form);
self.trainer.credits.left = 5;
self.trainer.credits.top = y - 17;
self.trainer.title.left = 10;
self.trainer.title.top = 2.5;
self.trainer.group.width = math.floor(x * 0.965);
self.trainer.group.height = math.floor(y * 0.85);
self.trainer.group.left = 5;
self.trainer.group.top = math.floor((y * 1.095) - y);
self.trainer.group.caption = 'Hacks';
self.trainer.subtitle.left = 5;
self.trainer.subtitle.top = 0;
self.trainer.subtitle.caption = 'Select an hack from the list, then press enable!';
local x,y = control_getSize(self.trainer.group);
self.trainer.list.width = math.floor((x * 0.75) - 6);
self.trainer.list.height = 64;
self.trainer.list.left = 5;
self.trainer.list.top = 20;
local x,y = control_getSize(self.trainer.list);
self.trainer.enable.width = math.floor((x * 0.34)-6);
self.trainer.enable.height = 32;
self.trainer.enable.left = x + 6;
self.trainer.enable.top = 19;
self.trainer.enable.caption = 'Enable';
self.trainer.enable.onClick = function (sender) self:ActivateHack(sender) end;
self.trainer.enableall.width = math.floor((x * 0.34)-6);
self.trainer.enableall.height = 32;
self.trainer.enableall.left = x + 6;
self.trainer.enableall.top = 53;
self.trainer.enableall.caption = 'Enable all';
self.trainer.enableall.onClick = function (sender) self:ActivateAllHacks(sender) end;
self.trainer.desctitle.left = 5;
self.trainer.desctitle.top = y + 20;
self.trainer.desctitle.caption = 'Selected hack description :';
self.trainer.desc.left = 5;
self.trainer.desc.top = y + 35;
self.trainer.desc.caption = 'No hack was selected...';
self.listitems = self.trainer.list.getItems();
HackData:HacksData();
setMethodProperty(self.trainer.list, 'OnSelectionChange', function () HackData:ChangeDesc() end)
self.trainer.form.show();
end
function HackData:ActivateAllHacks(sender)
self.activateall = true;
for i = 0, #self.hacktable do
i = i-1
self.trainer.list.ItemIndex = i
HackData:ActivateHack()
end
self.activateall = false;
end
function HackData:ActivateHack(sender)
self.listitems = self.trainer.list.getItems();
local index = self.trainer.list.ItemIndex + 1;
if (index == 0 or self.hacktable[index] == nil) then
return;
end
if (self.hackstatus[index] == false) then
if (type(self.hacktable[index][2])=='string') then
local asm = autoAssemble(self.hacktable[index][2]);
if (asm == true) then
if (AobSwapCheck~=true and AobSwapCheck~=nil) then
AobSwapCheck=nil;
if self.activateall == false then
return showMessage('Hack failed to enable!');
else
return
end
end
AobSwapCheck=nil;
if self.activateall == false then
if (self.hacktable[index][4]~='' and self.hacktable[index][4]~= nil) then
showMessage(self.hacktable[index][4]);
else
showMessage('Hack was enabled successfully!');
end
end
local str = strings_getString(self.listitems, index - 1);
strings_setString( self.listitems, index - 1, str .. ' - Enabled!' );
self.hackstatus[index] = true;
HackData:ChangeDesc()
else
if self.activateall == false then
return showMessage('Hack failed to enable!');
else
return
end
end
end
elseif (self.hackstatus[index] == true and (self.hacktable[index][5] == true or self.hacktable[index][5] == 'true') and self.activateall == false) then
if (type(self.hacktable[index][6])=='string') then
local asm = autoAssemble(self.hacktable[index][6]);
if (asm == true) then
if (AobSwapCheck~=true and AobSwapCheck~=nil) then
AobSwapCheck=nil;
return showMessage('Hack failed to enable!');
end
AobSwapCheck=nil;
if (self.hacktable[index][7]~='' and self.hacktable[index][7]~= nil) then
showMessage(self.hacktable[index][7]);
else
showMessage('Hack was disabled successfully!');
end
strings_setString( self.listitems, index - 1, self.hacktable[index][1] );
self.hackstatus[index] = false;
else
return showMessage('Hack failed to disable!');
end
end
end
HackData:ChangeDesc();
end
function HackData:ChangeDesc(sender)
local index = self.trainer.list.ItemIndex + 1
if (index == 0 or self.hacktable[index] == nil) then
return
end
if (self.hacktable[index][3] ~= '' and self.hacktable[index][3] ~= nil) then
self.trainer.desc.caption = self.hacktable[index][3];
else
self.trainer.desc.caption = "There's no descriptions available about this hack";
end
if (self.hackstatus[index] == true and (self.hacktable[index][5] == false or self.hacktable[index][5] == 'false')) then
self.trainer.enableall.Enabled = false;
self.trainer.enable.Enabled = false;
elseif (self.hackstatus[index] == true and (self.hacktable[index][5] == true or self.hacktable[index][5] == 'true')) then
self.trainer.enableall.Enabled = false;
self.trainer.enable.Enabled = true;
self.trainer.enable.Caption = 'Disable';
else
self.trainer.enableall.Enabled = true;
self.trainer.enable.Enabled = true;
self.trainer.enable.Caption = 'Enable';
end
end
HackData:Info()
end
processes = {'mgsvtpp.exe'}
retryamount = 0
function CheckIfFound()
if retryamount==600 then return object_destroy(AutoAttachWhenFound), Failure() end
retryamount = retryamount+1
local SL=createStringlist()
getProcesslist(SL)
function inTable(tbl, item)
for key, value in pairs(tbl) do
if value:upper() == item:upper() then return true end
end
return false
end
for i=0,strings_getCount(SL)-1 do
local entry = strings_getString(SL,i)
local processname = entry:sub(10,255)
if inTable(processes,processname) then
openProcess(processes[1])
object_destroy(AutoAttachWhenFound)
showMessage("Game was found!\nYou may enable now the hacks!")
CreateTrainer()
break
end
end
end
function Failure()
showMessage("Sorry but we couldn't find the game opened!\nThe program will shut down now")
closeCE()
end
showMessage("Please make sure the game is opened\nPress OK to attach")
AutoAttachWhenFound = createTimer(nil,true)
timer_setInterval(AutoAttachWhenFound, 500)
timer_onTimer(AutoAttachWhenFound, CheckIfFound)
|
MY Issue is that I don't understand where or how to make a lua script? |
|