Alexander Blade Posted February 21, 2015 Author Share Posted February 21, 2015 Nothing special til the PC release  Also, anything new in the world of V scripts, Alexander? XBLToothPik 1 Link to comment Share on other sites More sharing options...
kraftwerkd Posted February 22, 2015 Share Posted February 22, 2015 Just wanted to extend my thanks to everyone doing this. You guys give me inspiration to learn coding! Link to comment Share on other sites More sharing options...
Alexander Blade Posted March 6, 2015 Author Share Posted March 6, 2015 (edited) Launching online database with natives ! Â NATIVE DB is aimed to gather every piece of information about script native functions that we have , think of it as of native wiki where anyone who wants to contribute can do so and everyone who needs the latest script documentation or the header with natives for ScriptHook can get it right here ! Â Suggestions are welcome . Â NATIVE DB Edited March 6, 2015 by Alexander Blade xktgangx and Jitnaught 2 Link to comment Share on other sites More sharing options...
sasuke78200 Posted March 6, 2015 Share Posted March 6, 2015 Looks nice Alexander, but maybe you should add the changes we made on this page. Link to comment Share on other sites More sharing options...
Alexander Blade Posted March 6, 2015 Author Share Posted March 6, 2015 Why don't you do it , there are not much of a changes there  Looks nice Alexander, but maybe you should add the changes we made on this page. Link to comment Share on other sites More sharing options...
sasuke78200 Posted March 6, 2015 Share Posted March 6, 2015 I'm a lazy boy, haha. Â Â (I made some minor changes) Link to comment Share on other sites More sharing options...
NTAuthority Posted March 6, 2015 Share Posted March 6, 2015 Suggestions are welcome . perhaps json/xml dump for generating call stubs for different environments without having to parse the C++ header? Link to comment Share on other sites More sharing options...
2much4u Posted March 6, 2015 Share Posted March 6, 2015 (edited) Suggestions are welcome . Â Would like to be able to hit ctrl + f and search through all the natives without having to download a file or open up each individual category. That was something I could easily do on the wiki page. Edited March 6, 2015 by 2much4u Link to comment Share on other sites More sharing options...
KiLLerBoy_001 Posted March 8, 2015 Share Posted March 8, 2015 Agree with the CTRL+F thing makes it kinda hard ( guess he could add a custom search function ) BTW love the VEHICLE::0xE943B09C (i call it "_SET_VEHICLE_RPM_MULTIPLIER") its pretty neat _SET_VEHICLE_RPM_MULTIPLIER(EntityID, Float) is how its used Link to comment Share on other sites More sharing options...
sasuke78200 Posted March 12, 2015 Share Posted March 12, 2015 I was documenting some natives, when I saw that we can't set the return type to void or change the return type of a native when you set it to void. Â Like, "_0xC0B971EA" which is returning a boolean. Â We also can't submit a change of an unnamed native it says "Invalid name format", can you fix this please ? Link to comment Share on other sites More sharing options...
Alexander Blade Posted March 13, 2015 Author Share Posted March 13, 2015 (edited) If it says return type is void or vector then this is for sure , that's why you can't edit it , for example original scripts use 0xC0B971EA as a void one only and according to the code it's void as well  I see a name check bug while submitting , thx   I was documenting some natives, when I saw that we can't set the return type to void or change the return type of a native when you set it to void.  Like, "_0xC0B971EA" which is returning a boolean.  We also can't submit a change of an unnamed native it says "Invalid name format", can you fix this please ? Edited March 13, 2015 by Alexander Blade Link to comment Share on other sites More sharing options...
sasuke78200 Posted March 13, 2015 Share Posted March 13, 2015 Oh yeah sorry for the void return, I wasn't reading the good native. Link to comment Share on other sites More sharing options...
proditaki Posted April 9, 2015 Share Posted April 9, 2015 (edited)   Suggestions are welcome . Would like to be able to hit ctrl + f and search through all the natives without having to download a file or open up each individual category. That was something I could easily do on the wiki page.Theres an "expand all" option. Then u can ctrl+f Edit: or was this added after that comment? Edited April 9, 2015 by proditaki Link to comment Share on other sites More sharing options...
Alexander Blade Posted April 9, 2015 Author Share Posted April 9, 2015 (edited) After    Suggestions are welcome . Would like to be able to hit ctrl + f and search through all the natives without having to download a file or open up each individual category. That was something I could easily do on the wiki page.Theres an "expand all" option. Then u can ctrl+fEdit: or was this added after that comment?  Edited April 9, 2015 by Alexander Blade Link to comment Share on other sites More sharing options...
XeClutch Posted April 15, 2015 Share Posted April 15, 2015 (edited) I figure I should give my 2 cents regarding the native hook since I haven't posted anything on here in awhile. Now that PC is released I figure you guys could use some of this information. Â When calling a native, use the following struct. typedef struct _NativeParams{ PDWORD pdwReturn; // ptr to DWORD array DWORD dwParamCount; PDWORD pdwParams; // ptr to DWORD array (24 elems) that consists of the arguments that are passed through the native call _NativeParams(DWORD _dwParamCount, ...) { dwParamCount = _dwParamCount; va_list params; va_start(params, dwParamCount); for (int i = 0; i < dwParamCount; i++) pdwParams[i] = va_arg(params, DWORD); va_end(params); }} NativeParams, *pNativeParams; You can create a successful script hook by hooking the function that ciphers through the RAGE opcodes (dubbed "ParseOpCodes" by XBLToothpik). I've seen others create a working scripthook other ways but this is how I and a few others do it. When using the "ParseOpCodes" scripthook you'll need to skip a frame each time around, meaning you have a switch that toggles itself each time it's executed and the value of the switch will determine if your code is going to get executed or not. This might just be for consoles though because when you don't skip a frame each time around the game lags horribly. Â Also, when passing arguments through that struct I provided earlier, if the data type is a string you'll need to pass the address of where the string is located instead. Example: void _0xF42C43C7(char* type){ // _CALL_NATIVE is a function I made that just calls whatever native you pass through it. The first argument being the native hash and the second is the NativeParams. _CALL_NATIVE(0xF42C43C7, NativeParams(1, &type));} For other data types such as bytes, floats, etc.. just cast them as an int. Edited April 21, 2016 by XeClutch xSyGnUs and TheRouLetteBoi 2 Link to comment Share on other sites More sharing options...
saracoglu Posted April 15, 2015 Share Posted April 15, 2015 do we have an asi loader for GTA V already? Alexander, will you make one similar to yours for GTA IV? Link to comment Share on other sites More sharing options...
Alexander Blade Posted April 15, 2015 Author Share Posted April 15, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC AgentWD40, XeClutch, XBLToothPik and 7 others 10 Link to comment Share on other sites More sharing options...
XeClutch Posted April 15, 2015 Share Posted April 15, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC Now you've gone and done it Alex! Â Attention everyone: Link to comment Share on other sites More sharing options...
sjaak327 Posted April 15, 2015 Share Posted April 15, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC All I can say is thank you very much sir ! Â Time to replace self radio with something better Link to comment Share on other sites More sharing options...
saracoglu Posted April 15, 2015 Share Posted April 15, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC Â you're the man! Â I am starting the framework then. When will you be sharing the loader with us? Link to comment Share on other sites More sharing options...
Mellnik Posted April 15, 2015 Share Posted April 15, 2015 (edited) I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC When are you going to release the source? Â Â Â I figure I should give my 2 cents regarding the native hook since I haven't posted anything on here in awhile. Now that PC is released I figure you guys could use some of this information. Â When calling a native, use the following struct. Â typedef struct _NativeParams{ DWORD pdwReturn[5]; DWORD dwParamCount; DWORD pdwParams[100]; _NativeParams(DWORD _dwParamCount, ...) { dwParamCount = _dwParamCount; va_list params; va_start(params, dwParamCount); for (int i = 0; i < dwParamCount; i++) pdwParams = va_arg(params, DWORD); va_end(params); } } NativeParams, *pNativeParams; Â You can create a successful script hook by hooking the function that ciphers through the RAGE opcodes (dubbed "ParseOpCodes" by XBLToothpik). I've seen others create a working scripthook other ways but this is how I and a few others do it. When using the "ParseOpCodes" scripthook you'll need to skip a frame each time around, meaning you have a switch that toggles itself each time it's executed and the value of the switch will determine if your code is going to get executed or not. This might just be for consoles though because when you don't skip a frame each time around the game lags horribly. Â Also, when passing arguments through that struct I provided earlier, if the data type is a string you'll need to pass the address of where the string is located instead. Example: Â void _0xF42C43C7(char* type){ // _CALL_NATIVE is a function I made that just calls whatever native you pass through it. The first argument being the native hash and the second is the NativeParams. _CALL_NATIVE(0xF42C43C7, NativeParams(1, &type)); } Â For other data types such as bytes, floats, etc.. just cast them as an int. So can you show us the _CALL_NATIVE function? Edited April 15, 2015 by Mellnik Link to comment Share on other sites More sharing options...
XeClutch Posted April 16, 2015 Share Posted April 16, 2015 I figure I should give my 2 cents regarding the native hook since I haven't posted anything on here in awhile. Now that PC is released I figure you guys could use some of this information. Â When calling a native, use the following struct. Â typedef struct _NativeParams{ DWORD pdwReturn[5]; DWORD dwParamCount; DWORD pdwParams[100]; _NativeParams(DWORD _dwParamCount, ...) { dwParamCount = _dwParamCount; va_list params; va_start(params, dwParamCount); for (int i = 0; i < dwParamCount; i++) pdwParams = va_arg(params, DWORD); va_end(params); } } NativeParams, *pNativeParams; Â You can create a successful script hook by hooking the function that ciphers through the RAGE opcodes (dubbed "ParseOpCodes" by XBLToothpik). I've seen others create a working scripthook other ways but this is how I and a few others do it. When using the "ParseOpCodes" scripthook you'll need to skip a frame each time around, meaning you have a switch that toggles itself each time it's executed and the value of the switch will determine if your code is going to get executed or not. This might just be for consoles though because when you don't skip a frame each time around the game lags horribly. Â Also, when passing arguments through that struct I provided earlier, if the data type is a string you'll need to pass the address of where the string is located instead. Example: Â void _0xF42C43C7(char* type){ // _CALL_NATIVE is a function I made that just calls whatever native you pass through it. The first argument being the native hash and the second is the NativeParams. _CALL_NATIVE(0xF42C43C7, NativeParams(1, &type)); } Â For other data types such as bytes, floats, etc.. just cast them as an int. So can you show us the _CALL_NATIVE function? All it does is cipher through the native pool searching for the call address and then passes the address of the NativeParams struct as the only parameter. Link to comment Share on other sites More sharing options...
ClareXoBearrx3 Posted April 16, 2015 Share Posted April 16, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC Awesome! Can't wait to start writing, hopefully with a C++ (or even C) framework Link to comment Share on other sites More sharing options...
stef538 Posted April 16, 2015 Share Posted April 16, 2015 I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC I hope it's also in C# Finney 1 Link to comment Share on other sites More sharing options...
Jitnaught Posted April 17, 2015 Share Posted April 17, 2015 (edited) Â I have asi loader , it's done in another way a bit in order to bypass exe encryption , I have script hook (since x360 actually) , it's ported to PC as well . Currently I'm matching natives between x360 and PC since they use different hashing algo (or even use random values instead) for natives in PC I hope it's also in C# Â It is probably in C++, but a .NET Scripthook will be made around it.Edit: Told ya! XD Edited May 5, 2015 by LetsPlayOrDy stef538 1 Link to comment Share on other sites More sharing options...
gta.bullet Posted April 17, 2015 Share Posted April 17, 2015 (edited) I was hoping we will get native names in exe, but unfortunately most strings are meaningless online debug related things, it is stripped well. Sad. Edited April 17, 2015 by gta.bullet Link to comment Share on other sites More sharing options...
XeClutch Posted April 17, 2015 Share Posted April 17, 2015 I was hoping we will get native names in exe, but unfortunately most strings are meaningless online debug related things, it is stripped well. Sad. They started hashing everything once V came around. Link to comment Share on other sites More sharing options...
MulleDK19 Posted April 18, 2015 Share Posted April 18, 2015 (edited) Â I was hoping we will get native names in exe, but unfortunately most strings are meaningless online debug related things, it is stripped well. Sad. They started hashing everything once V came around. Â Â And they aren't just hashed; they're salted. Edited April 18, 2015 by MulleDK19 Link to comment Share on other sites More sharing options...
Alexander Blade Posted April 18, 2015 Author Share Posted April 18, 2015 (edited) He means not just natives but other stuff as well . Natives are probably not hashed but replaced with random 64bit values (there are 3 natives that comes under old hashes) , according to the rule that only used in scripts natives go to the executable I may assume that native registration source file is autogenerated , so they could do some stuff like plain replace there . Â Â Â I was hoping we will get native names in exe, but unfortunately most strings are meaningless online debug related things, it is stripped well. Sad. They started hashing everything once V came around. Â Â And they aren't just hashed; they're salted. Â Edited April 21, 2015 by Alexander Blade Link to comment Share on other sites More sharing options...
Bucho Posted April 18, 2015 Share Posted April 18, 2015 Register Native for vm is a GTA5.exe+14013F8? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now