|
Members in Shoutbox
None.
Shoutbox Search
Shoutbox Commands
/w [name] > Whisper
/r > Reply to last whisper /me > Marks as action Shoutbox Information
Moderators may delete any and all shouts at will.
|
Global Shoutbox
Please log in to shout.
[2016-4-16. : 5:35 am] O)FaRTy1billion[MM] -- units.dat will be way harder, but it at least proves that there isn't any stupid checks or limitations[2016-4-16. : 5:32 am] O)FaRTy1billion[MM] -- I really need to make it just an mpqdraft plugin. Having to run the mpq in mpqdraft and then patching it with a separate program is dumb[2016-4-16. : 4:27 am] jjf28 -- free hookers: https://github.com/jjf28/ScQuickLaunch/blob/master/ScQuickLaunch/ProcessModder.h https://github.com/jjf28/ScQuickLaunch/blob/master/ScQuickLaunch/ProcessModder.cpp[2016-4-16. : 4:19 am] O)FaRTy1billion[MM] -- it's because I was doing it from a separate process. I don't know how to modify the current process to be able to write to itself ![]() [2016-4-16. : 4:15 am] O)FaRTy1billion[MM] -- I don't remember, I just have code that lets me write to SC. ![]() [2016-4-16. : 4:15 am] Neiv -- Thought I think you have to use VirtualProtectEx even if you write from another process?[2016-4-16. : 4:14 am] Neiv -- FaRTy1billionFaRTy1billion shouted: Neiv I dunno how to do that VirtualProtect https://msdn.microsoft.com/en-us/library/windows/desktop/aa366898%28v=vs.85%29.aspx[2016-4-16. : 4:14 am] O)FaRTy1billion[MM] -- NeivNeiv shouted: obviously after getting write access to the code I dunno how to do that[2016-4-16. : 4:13 am] Neiv -- I've fixed a bunch of buggy diablo 2 plugins which assumed that dlls are always at same address <.<[2016-4-16. : 4:13 am] Neiv -- And patching bw is easy, the executable doesn't get relocated unlike dlls do ![]() [2016-4-16. : 4:12 am] Neiv -- WriteProcessMemory and such should work even with using the current process, but you can just cast a integer to a pointer and write to that[2016-4-16. : 4:12 am] O)FaRTy1billion[MM] -- my EUDEnable source folder is a mess. There's like 4 different programs in there xD[2016-4-16. : 4:10 am] O)FaRTy1billion[MM] -- I know how to overwrite code when working from an external process ![]() [2016-4-16. : 4:10 am] Neiv -- Yea, they are being loaded in sc's process when the Initialize function is called[2016-4-16. : 4:09 am] O)FaRTy1billion[MM] -- Also will I have to do stuff to overwrite the code? lol[2016-4-16. : 4:08 am] O)FaRTy1billion[MM] -- Do MPQDraft plugins share memory with SC? I don't remember[2016-4-16. : 4:02 am] O)FaRTy1billion[MM] -- because if this doesn't work / ends up being really complicated somehow then it won't be worth doing it now[2016-4-16. : 4:00 am] Neiv -- And changing byte to word with movzx seems to be the same size, though a regular mov with word requires an additional instruction byte[2016-4-16. : 3:59 am] Neiv -- 256 flingies aren't enough If that place is only one with 8-bit ids then it's not too bad[2016-4-16. : 3:58 am] O)FaRTy1billion[MM] -- Changing units.dat flingy value to 2 bytes is trivial, and then just change a handful of MOVZX E_X,BYTE PTR DS:[E_X+6644F8] to WORD .... I don't know the instructions well enough to know if that will change the size of the opcodes ![]() [2016-4-16. : 3:57 am] O)FaRTy1billion[MM] -- Although with flingys in particular it would be really easy to change that to be 16-bit[2016-4-16. : 3:56 am] O)FaRTy1billion[MM] -- So there still will be limits with just replacing pointers, but you could still add 46 or whatever flingies[2016-4-16. : 3:55 am] O)FaRTy1billion[MM] -- LoveLessLoveLess shouted: I just noticed, Leeroy has been absent from SEN for half a year. What hell is this. yes[2016-4-16. : 3:55 am] LoveLess -- I just noticed, Leeroy has been absent from SEN for half a year. What hell is this.[2016-4-16. : 3:52 am] Neiv -- Oh, actually, is there any code that stores flingy id in a 8-bit variable? At least the flingy struct itself uses 16 bits[2016-4-16. : 3:50 am] O)FaRTy1billion[MM] -- Also with the loading tables I came across you don't even really need to write custom loading code, just have your own memory and when overwriting all the pointers overwrite that table too[2016-4-16. : 3:49 am] O)FaRTy1billion[MM] -- I alreaded modded dat.edit to have 10 more flingy entries. I just need to edit the .dat so it stops yelling that it is invalid xD[2016-4-16. : 3:49 am] O)FaRTy1billion[MM] -- ya, so there's a bunch of places that need some changes because of things like that[2016-4-16. : 3:48 am] O)FaRTy1billion[MM] -- And then there's like the command cards for each unit (IDs > 227 are hardcoded cards, like for mixed unit groups, that will need to be moved/accounted for)[2016-4-16. : 3:48 am] Neiv -- FaRTy1billionFaRTy1billion shouted: ;o DatEdit has techdata's unknown as a single 4-byte integer, when it's two 2-byte integers I bet those are tech research and tech use .dat requirements[2016-4-16. : 3:48 am] O)FaRTy1billion[MM] -- Yes, but there's a bunch of other stuff you'd have to change. Like stat_txt.tbl has no specified indexes for the unit name, so you either have to displace as many strings as units added or add a different way to name units[2016-4-16. : 3:45 am] Neiv -- Technically, if you just have a list of all instructions that refer units.dat, don't they all have just the 32-bit constant that can be easily patched?[2016-4-16. : 3:44 am] Neiv -- Oh, I wasn't able to get datedit load units.dat which had an additional entry. Maybe I just made a mistake somewhere[2016-4-16. : 3:44 am] O)FaRTy1billion[MM] -- Also editing tools is easy. I made a format file for sc1.00 units.dat for datedit[2016-4-16. : 3:43 am] O)FaRTy1billion[MM] -- And they're all mostly in one place, because they basically just get copied to the flingy struct when a flingy is created[2016-4-16. : 3:41 am] O)FaRTy1billion[MM] -- NeivNeiv shouted: So it's feasible unlike units.dat which has likely hundreds of memory addresses to patch More than hundreds. ![]() [2016-4-16. : 3:39 am] Neiv -- ..I've considered of doing that but then I got too lazy as I realized that I'd also have to update the tools ![]() |