I am working on automating some functionality within a closed-source third party application; I want to automate the creation of Project Files (in its simplest form, just a collection of video files in a specific order). The video files which this application works with each have an associated metadata file, and I have already managed to understand and recreate 99% of its format. Both these project files and the metadata files are more-or-less plain XML (with some strange tag names I have yet to decipher).Basically, I want to know what methods I can use to determine the format of these project files so that I can write my own and reference the video files I have chosen in the prior part of my script.There are many DLL files in the applications directory, and I was thinking that maybe monitoring their use during a save operation (of a project file in the application) could point me in the right direction? If so, how could I go about this? I have also began learning DLL injection, and was wondering if this could be of use?
Reverse engineer a proprietary save/file format structure
disassembly;windows;file format;dll
Ok, this can be tackled in a great number of ways. As you recently learned DLL injection a fun exercise is to use this knowledge to overwrite a function :) A good start is the Inline Hooking in Windows Presentation by High-Tech Bridge and this codeproject page. What you do is overwrite the function. What you'll have to to in order to redirect the WriteFileA to your own write function. This allows you to trace-back by walking the return values to determine the flow of the data. You can also examine the way data is written (once or by chunks).You can also Trace the application, check the addresses of data that is collected, see if it gets parsed though some kind of encryption or compression algorithm. Hope I am some form of help. :) 