Jump to content

Listfile generator 010 based

By Смердокрыл
in Miscellaneous

Recommended Posts

Hey!

Through an unfortunate series of my stupidity, a giant amount of work was packed into an MPQ and then original files deleted (don't even ask how, I'm already ashamed enough). When I tried to get the files back, the only way was to extract them from the MPQ, which resulted into all of it being in the weird "FileXXXXXXXX.extension" form.

So, I thought it would be possible to create a 010 tool, which would take the values from the "struct filename" thing, assign it as the actual name of the file, and also generate and place files according to the paths in "struct Textures". The rest I'll do by hand, since I remember the general structure.

That is a wonderful idea, I'm sure, but I lack the skill to turn it into reality. Could someone help? I mean, not necessarily do it for me (just in case, I'm not saying I'm against it ;)), but at least describe the general way such things are done, or link a tutorial?

or not


 skarnnoggitlogpost.thumb.jpg.d752b4e8541

Link to comment
Share on other sites

1 hour ago, Смердокрыл said:

So, I thought it would be possible to create tool, which would take the values from the "struct filename" thing, assign it as the actual name of the file,

This already exists on my storage hard drive :P
 

No matter how fast light travels it finds the darkness has always got there first and is waiting for it 

58481774cef1014c0b5e4992.png PATREON | 580b57fcd9996e24bc43c540.pngTWITCH | mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngMC.net | png-transp.pngYOUTUBE | kisspng-paypal-computer-icons-logo-paypal-5b21b2671141f9.6031865215289350150707.pngPAYPAL |mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngBUY SOME OF MY 3D MODELS


Star-Citizen-4k-001.pngStar Citizen Referral Code : STAR-XNFS-HVL9 - Register using my code and recieve free 5,000 UEC

Link to comment
Share on other sites

i wanted to make some short explanation video 1st but i put files here if you want them imidietly 
alastor_renamer.ex renames all files in actualy folder by its format (based on 4 bytes ) MD20 = .M2 
but you need to mention all files in folder in pathlist.txt i want to make better version of this but since this is working and i havent used it in year or something like this it was putted to ice 
 

renamer.7z

No matter how fast light travels it finds the darkness has always got there first and is waiting for it 

58481774cef1014c0b5e4992.png PATREON | 580b57fcd9996e24bc43c540.pngTWITCH | mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngMC.net | png-transp.pngYOUTUBE | kisspng-paypal-computer-icons-logo-paypal-5b21b2671141f9.6031865215289350150707.pngPAYPAL |mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngBUY SOME OF MY 3D MODELS


Star-Citizen-4k-001.pngStar Citizen Referral Code : STAR-XNFS-HVL9 - Register using my code and recieve free 5,000 UEC

Link to comment
Share on other sites

when you donw load wod / legion it creates folder with all unknow files 
6AFBZsP.png

P5oqVLc.png

 

basicaly on type of file 

JkQ1ovW.png

it creates extension for every file in list 

GleSVRT.png)

 

thats all that its doing 

No matter how fast light travels it finds the darkness has always got there first and is waiting for it 

58481774cef1014c0b5e4992.png PATREON | 580b57fcd9996e24bc43c540.pngTWITCH | mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngMC.net | png-transp.pngYOUTUBE | kisspng-paypal-computer-icons-logo-paypal-5b21b2671141f9.6031865215289350150707.pngPAYPAL |mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngBUY SOME OF MY 3D MODELS


Star-Citizen-4k-001.pngStar Citizen Referral Code : STAR-XNFS-HVL9 - Register using my code and recieve free 5,000 UEC

Link to comment
Share on other sites

possible result 

lXFpP1d.png

 

when oyu have M2 files you can for example use 010 editor .sc script to extract paths to textures | paths to models from WMOs etc ...

No matter how fast light travels it finds the darkness has always got there first and is waiting for it 

58481774cef1014c0b5e4992.png PATREON | 580b57fcd9996e24bc43c540.pngTWITCH | mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngMC.net | png-transp.pngYOUTUBE | kisspng-paypal-computer-icons-logo-paypal-5b21b2671141f9.6031865215289350150707.pngPAYPAL |mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngBUY SOME OF MY 3D MODELS


Star-Citizen-4k-001.pngStar Citizen Referral Code : STAR-XNFS-HVL9 - Register using my code and recieve free 5,000 UEC

Link to comment
Share on other sites

Oh ok but when i read whats its his Tut i dont think thats it all you need to know well basicaly yes its good start but if you have no idea about programing that this is not an option 

No matter how fast light travels it finds the darkness has always got there first and is waiting for it 

58481774cef1014c0b5e4992.png PATREON | 580b57fcd9996e24bc43c540.pngTWITCH | mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngMC.net | png-transp.pngYOUTUBE | kisspng-paypal-computer-icons-logo-paypal-5b21b2671141f9.6031865215289350150707.pngPAYPAL |mcnet_logo1.png.2e45c50862b388f6032ba68b42275bd2.pngBUY SOME OF MY 3D MODELS


Star-Citizen-4k-001.pngStar Citizen Referral Code : STAR-XNFS-HVL9 - Register using my code and recieve free 5,000 UEC

Link to comment
Share on other sites

* take an existing listfile for live data to find modified-only files

* it will probably contain files like map.dbc. Open it and find new map names.

** add all adt etc names to the listfile

** repeat for other dbcs

* extract all adts and get texture and model filenames from them

* extract all models and get texture filenames from them

 

should be a one hour job when done manually.

 

Link to comment
Share on other sites

  • 4 weeks later...

That's the same technique that is used for decrypting patches. Find known files by headers (DBC), there you can get names for maps (not only), so you already know how the path to WDTs, so you read them and find out what ADT files you have. From ADT files you can get the list of used M2s and WMOs. Inside WMOs you also get a list of M2s and Textures, Textures in M2s and so on and so forth. It is a step by step process. It would be relatively easy to code in 010 editor if there was a commandline MPQ unpacker that works with custom listfile information, but there is none. Anyway it would not be a very serious task for a decent programmer who can use Stormlib and make some standalone tool. And that is, by the way, the same method that people use for stealing listfile-free patch content, so it turns that way of protection into some kind of cure against noobs. For real protection, one would need something more complicated, and there are better ways actually.

Link to comment
Share on other sites

1 hour ago, wungasaurus said:

Protection of content that is supposed to be opened but not opened can't work by definition. Just stop trying everyone. People who want to steal will be able to.

You are right. The thing that matters is who would be able to open those patches. I have no doubt that you, me and many other experienced guys would do that without any problems but usually those who actually want to steal the content from some server are noobs who can't create something themselves or just stealing some retroporting work. Against those something harder than listfile breaking works like a charm.

Link to comment
Share on other sites

8 hours ago, wungasaurus said:

Protection of content that is supposed to be opened but not opened can't work by definition. Just stop trying everyone. People who want to steal will be able to.

 

7 hours ago, Skarn said:

You are right. The thing that matters is who would be able to open those patches. I have no doubt that you, me and many other experienced guys would do that without any problems but usually those who actually want to steal the content from some server are noobs who can't create something themselves or just stealing some retroporting work. Against those something harder than listfile breaking works like a charm.

 

Actually, it is not a linear proportion, more like a curve. Yes, people who want to steal will always find a way to, but there is a certain point the protection becomes so advanced, that those people who can bypass it are skilled enough to produce content themselves, and, therefore, do not need to steal.

or not


 skarnnoggitlogpost.thumb.jpg.d752b4e8541

Link to comment
Share on other sites

1 minute ago, Смердокрыл said:

 

 

Actually, it is not a linear proportion, more like a curve. Yes, people who want to steal will always find a way to, but there is a certain point the protection becomes so advanced, that those people who can bypass it are skilled enough to produce content themselves, and, therefore, do not need to steal.

That's exactly what I meant in other words, thanks.

Link to comment
Share on other sites

The only chance to obfuscate archives is to break parsing with third party editors. By design that's the end. Also, if there is any archive that is valid but not parsed, Ladislav and the usual people will fix their tools. Without modifying the client there is no way to obfuscate anything to a level that it can't be automatically reversed. And if you do modify your client to do further obfuscation, that's either specific to your one project and your project us irrelevant enough, or it will be reversed as well.

I understand why people want to do it, but it just won't even turn out useful or nice. No matter what you invent, someone will crack it within a few days if you're relevant enough. Just stop it. This is entirely lost effort.

it is a flawed idea. 

Link to comment
Share on other sites

1 hour ago, wungasaurus said:

The only chance to obfuscate archives is to break parsing with third party editors. By design that's the end. Also, if there is any archive that is valid but not parsed, Ladislav and the usual people will fix their tools. Without modifying the client there is no way to obfuscate anything to a level that it can't be automatically reversed. And if you do modify your client to do further obfuscation, that's either specific to your one project and your project us irrelevant enough, or it will be reversed as well.

I understand why people want to do it, but it just won't even turn out useful or nice. No matter what you invent, someone will crack it within a few days if you're relevant enough. Just stop it. This is entirely lost effort.

it is a flawed idea. 

Well, there is a way of preventing stealing that's both a better use of time and good for the modding community - create so many advanced tools that it will be easier to create what you want rather than stealing it)

or not


 skarnnoggitlogpost.thumb.jpg.d752b4e8541

Link to comment
Share on other sites

8 hours ago, wungasaurus said:

The only chance to obfuscate archives is to break parsing with third party editors. By design that's the end. Also, if there is any archive that is valid but not parsed, Ladislav and the usual people will fix their tools. Without modifying the client there is no way to obfuscate anything to a level that it can't be automatically reversed. And if you do modify your client to do further obfuscation, that's either specific to your one project and your project us irrelevant enough, or it will be reversed as well.

I understand why people want to do it, but it just won't even turn out useful or nice. No matter what you invent, someone will crack it within a few days if you're relevant enough. Just stop it. This is entirely lost effort.

it is a flawed idea. 

It is not hard to do. Just rename all the DBC files to something else and change their header. Do the hex edit of the wow.exe. That would cut down a huge part of usual patch stealers because they do not know things more complicated than adding a listfile from WoW. And skilled people who actually are capable of cracking it no matter what you do are usually not interested in stealing. So, that works perfectly and is really fast to do.

7 hours ago, Смердокрыл said:

Well, there is a way of preventing stealing that's both a better use of time and good for the modding community - create so many advanced tools that it will be easier to create what you want rather than stealing it)

I agree, but in reality it probably won't happen because there is an extreme lack of motivated and interested programmers.

Link to comment
Share on other sites

×
×
  • Create New...