| User |
 |
 |
Joined: Thu Aug 30, 2007 1:23 am Location: Falcon, CO
|
The game can be hacked using scripts (sqs and sqf files) and bypassing the cheat detection. It uses an anti-cheat called "Battleye" which is apparently pretty useless. For example, here are some scripts that are detected now, but probably still usable just by changing some things around, using different variables, etc: _Hack = _this select 0; _Name = _this select 1; _Script = _this select 2; _Type = _this select 3;
//hint format ["%1 , %2 , %3 , %4",_Hack,_Name,_Script,_Type];
if (_Type == "SQS" ) then { [_Name,_Hack] exec format["%1",_Script];}; if (_Type == "SQF" ) then { [_Name,_Hack] execVM format["%1",_Script];};
I'm not really that great at coding, but I can take guesses as to what all these separate parts do. This whole script is an sqf which I think is used to actually initiate the hack ingame. hacks = []; // DO NOT EDIT THIS LINE ///////////////ADD HACK START//////////////////////
// ADD HACKS BELOW // FORMAT: HACK TITLE >> SCRIPT PATH >> FILE NAME >> TYPE
hacks = hacks + ["======== Main only for you ========","MrMedic\scripts\Repair.sqf","SQF"];
hacks = hacks + ["GodMode","MrMedic\scripts\godmode.sqf","SQF"];
hacks = hacks + ["Inf Ammo","MrMedic\scripts\Ammo.sqf","SQF"];
hacks = hacks + ["Artillary","MrMedic\scripts\carpet.sqs","SQS"];
hacks = hacks + ["TelePort","MrMedic\scripts\teleport.sqf","SQF"];
hacks = hacks + ["Weapons","MrMedic\scripts\weapons.sqf","SQF"];
hacks = hacks + ["Humvie","MrMedic\scripts\1Humvie.sqs","SQS"];
hacks = hacks + ["Helicopter","MrMedic\scripts\1Huey.sqs","SQS"];
hacks = hacks + ["Fighter Jet","MrMedic\scripts\A10.sqs","SQS"];
hacks = hacks + ["Repair","MrMedic\scripts\Repair.sqf","SQF"];
hacks = hacks + ["Fighter Jet Squad","MrMedic\scripts\A10Backup.sqf","SQF"];
///////////////BE CAREFULL IF YOU ARE EDITING THE NEXT PART ERRORS IN BETWEEN LOADER AND END AND IT WILL CAUSE THE GAME TO HALT/////////////////
startLoadingScreen [format ["Working wait...",_nul],"RscDisplayLoadMission"];
#define GET_DISPLAY (findDisplay 155) #define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) #define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) #define KINDOF_ARRAY(a,b) [##a,##b] call {_veh = _this select 0;_types = _this select 1;_res = false; {if (_veh isKindOf _x) exitwith { _res = true };} forEach _types;_res} #define balca_VC_vehlist_IDC = 101
hacks = hacks + ["======== Air Vehicle Spawner ========","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hint "Generating Vehicle listings."; _kindOf = ["air"]; _filter = ["BIS_Steerable_Parachute"]; _filter1 = ["ParachuteBase"]; _cfgvehicles = configFile >> "cfgVehicles";
for "_i" from 0 to (count _cfgvehicles)-1 do { _vehicle = _cfgvehicles select _i; if (isClass _vehicle) then { _veh_type = configName(_vehicle); if ((getNumber(_vehicle >> "scope")==2)and(getText(_vehicle >> "picture")!="")and(KINDOF_ARRAY(_veh_type,_kindOf))and!(KINDOF_ARRAY(_veh_type,_filter))and!(KINDOF_ARRAY(_veh_type,_filter1))) then { hacks = hacks + [format["%1",_veh_type],"MrMedic\scripts\!spawnvehicle2.sqf","SQF"];
}; }; }; hacks = hacks + ["======== Tank Vehicle Spawner ========","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hint "Generating Vehicle listings."; _kindOf = ["Tank"]; _filter = ["BIS_Steerable_Parachute"]; _filter1 = ["ParachuteBase"]; _cfgvehicles = configFile >> "cfgVehicles";
for "_i" from 0 to (count _cfgvehicles)-1 do { _vehicle = _cfgvehicles select _i; if (isClass _vehicle) then { _veh_type = configName(_vehicle); if ((getNumber(_vehicle >> "scope")==2)and(getText(_vehicle >> "picture")!="")and(KINDOF_ARRAY(_veh_type,_kindOf))and!(KINDOF_ARRAY(_veh_type,_filter))and!(KINDOF_ARRAY(_veh_type,_filter1))) then { hacks = hacks + [format["%1",_veh_type],"MrMedic\scripts\!spawnvehicle2.sqf","SQF"];
}; }; }; hacks = hacks + ["======== Car Vehicle Spawner ========","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hint "Generating Vehicle listings."; _kindOf = ["Car"]; _filter = ["BIS_Steerable_Parachute"]; _filter1 = ["ParachuteBase"]; _cfgvehicles = configFile >> "cfgVehicles";
for "_i" from 0 to (count _cfgvehicles)-1 do { _vehicle = _cfgvehicles select _i; if (isClass _vehicle) then { _veh_type = configName(_vehicle); if ((getNumber(_vehicle >> "scope")==2)and(getText(_vehicle >> "picture")!="")and(KINDOF_ARRAY(_veh_type,_kindOf))and!(KINDOF_ARRAY(_veh_type,_filter))and!(KINDOF_ARRAY(_veh_type,_filter1))) then { hacks = hacks + [format["%1",_veh_type],"MrMedic\scripts\!spawnvehicle2.sqf","SQF"];
}; }; }; endLoadingScreen;
////////////////////////////////
hacks = hacks + ["======== Antagonise others ========","MrMedic\scripts\Repair.sqf","SQF"];
hacks = hacks + ["KillMan","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["LockAir","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["UnlockAir","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["LockTank","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["UnlockTank","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["LockCar","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["UnlockCar","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["LockMan","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["UnlockMan","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["HitBackRottor","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["HitChopperEngine","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["DestroyAir","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["DestroyCar","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["DestroyTank","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["DestroyBuilding","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["EjectPlayer","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["======== Life ========","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Be a cop","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Add Cash","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Add Cash 12143","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Remove Cash","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Faster Respawn","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Longer Respawn","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Infinite Petrol","MrMedic\scripts\VehicleOwn.sqf","SQF"];
hacks = hacks + ["Anti-Stun","MrMedic\scripts\VehicleOwn.sqf","SQF"];
///////////////ADD HACK END//////////////////////
//////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// // DO NOT EDIT BELOW THIS LINE // UNLESS YOU KNOW WHAT YOU ARE DOING //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// //////////////////////////////////////////////// ////////////////////////////////////////////////
disableSerialization; //ctrlshow [1004,false]; //ctrlshow [1003,false]; ctrlshow [1005,false]; ctrlshow [1012,false]; //ctrlshow [102,false]; //ctrlshow [103,false]; ctrlshow [116,false]; ctrlshow [121,false]; ctrlshow [125,false]; ctrlshow [126,false]; ctrlshow [127,false]; ctrlshow [117,false]; ctrlshow [118,false]; ctrlshow [128,false]; ctrlshow [106,false]; ctrlshow [107,false]; ctrlshow [1,false]; ctrlshow [2,false]; //ctrlshow [1002,false];
ctrlSetText [1001,"U-NO-WHO V1.1.2x"]; ctrlSetText [1002,"Status:"];
ctrlSetText [101,format["%1 - Team : %2",lifeState player , side player]]; ctrlSetText [103,format ["Created by U-NO-WHO : Task : %1",currentTask player ]]; ctrlSetText [102,format ["%1",worldName]];
ctrlSetText [104,"Execute"]; ctrlSetText [105,"EXIT"]; ctrlSetText [106,"NEXTMENU"]; ctrlSetText [107,"EXIT"]; ctrlSetText [108,"Menu"]; ctrlSetText [1006,"Player List:"];
_T=0; _Dev=114;//109
_side = format["%1",side player];
lbAdd [_Dev,name player];
lbsetpicture [_Dev,_T,"ca\ui\data\flag_none_ca.paa"];
if (_side == "WEST") then { lbsetpicture [_Dev,_T,"\ca\ui\data\flag_bluefor_ca.paa"]; }; if (_side == "EAST") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_opfor_ca.paa"];}; if (_side == "GUERRILA") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_indep_ca.paa"];}; if (_side == "CIVILIAN") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_civil_ca.paa"];};
_T=_T+1; hintsilent "";
_Dev=114;//109
_side = format["%1",side player];
lbAdd [_Dev,"ALL PLAYERS"];
lbsetpicture [_Dev,_T,"ca\ui\data\flag_none_ca.paa"];
if (_side == "WEST") then { lbsetpicture [_Dev,_T,"\ca\ui\data\flag_bluefor_ca.paa"]; }; if (_side == "EAST") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_opfor_ca.paa"];}; if (_side == "GUERRILA") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_indep_ca.paa"];}; if (_side == "CIVILIAN") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_civil_ca.paa"];};
_T=_T+1; hintsilent "";
_Dev=114;//109 {
_side = format["%1",side _x]; if (name _x != name player) then { lbAdd [_Dev,name _x];
lbsetpicture [_Dev,_T,"ca\ui\data\flag_none_ca.paa"];
if (_side == "WEST") then { lbsetpicture [_Dev,_T,"\ca\ui\data\flag_bluefor_ca.paa"]; }; if (_side == "EAST") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_opfor_ca.paa"];}; if (_side == "GUERRILA") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_indep_ca.paa"];}; if (_side == "CIVILIAN") then {lbsetpicture [_Dev,_T,"\ca\ui\data\flag_civil_ca.paa"];};
_T=_T+1; }; hintsilent ""; } foreach playableunits;
lbSetCurSel [_Dev,0];
/////////////////////////
/////////////////////////
_T = 0; for [{_fx=0},{_fx<=count(hacks)-1},{_fx=_fx+3}] do {
lbadd [109,format["%1",hacks select _fx]]; if (_T == 1) then {lbsetcolor[109,(lbsize 109)-1,[1,1,1,0.8]];}; if (_T == 2) then {lbsetcolor[109,(lbsize 109)-1,[1,1,1,0.4]];};
if (_T > 2 ) then { lbsetcolor[109,(lbsize 109)-1,[1,1,1,0.9]]; _T = 0; }; _T = _T + 1;
};
/////////////////////////
/////////////////////////
index = lbCurSel 109; //hint format["%1",_hacks select index];
buttonSetAction [125,"hint '125';"]; buttonSetAction [126,"hint '126';"]; buttonSetAction [127,"hint '127';"]; buttonSetAction [104,"[lbtext[109,(lbCurSel 109)],lbtext[114,(lbCurSel 114)],format['%1',hacks select ((lbCurSel 109))*3+1],format['%1',hacks select ((lbCurSel 109))*3+2]] execVM 'MrMedic\RUN.sqf';"]; buttonSetAction [105,"closedialog 0;"]; buttonSetAction [106,"hint '106';"]; buttonSetAction [107,"closedialog 0;"];
if (isnil "firstrun") then {firstrun = 1;hint "Instructions:\nClick a name then click on the action you want to perform on them. \nThen click execute \n( to do the action on all players click the name) \nALL PLAYERS. \nnote : \nThis message will not be displayed again until you reconnect.";};
Then I'm not really sure what this one does, besides pointing to all the separate script files that can be loaded in order to cheat. This is sort of what I was talking about when just changing something around could make it undetected. Take this code: "UH1H_DZ" createVehicle (position player)
Which is used to spawn a helicopter at the players location (but is detected) and turn it into this: _class "UH1H_DZ"; _location position player; _object = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"];
And then all of a sudden it works and you won't be kicked/banned for using it. (probably detected now, but you get the idea). All the code that runs the day z mod is this way, and it's contained in the code that you download to run the mod. I feel like it should be easy, but I have no clue where to start in hacking this game. I've looked at a lot of sample scripts but can't figure out how I would go about doing the same thing, just differently (like in the example i posted before). I feel like anybody who knows how to code would find this easy, even if they don't know the arma 2 scripting commands. Doesn't matter though, because they have them all conveniently shown on their site: http://community.bistudio.com/wiki/Cate ... ands_ArmA2I'm just wondering if anybody here actually plays this game/mod and is interested in working with me/helping me to understand how it works. I'm mostly interested in the anti-cheat, and figuring out what code is blacklisted and how to get around it. I even host/run a server, so it should be easy since I have access to all the serverside files... I just don't know where to start. Also, I'm kind of curious. Knowing that code can be executed using sqs/sqf files, is it also possible to code programs in python or some other programming language to hack the game? Or does everything have to go through scripts? Can you inject hacks? How do you know what/where to inject them? How do you know what will get you caught or not?
_________________
|
|