我正在致力于在一个开源第三方应用程序中自动化一些功能;我想自动创建“项目文件”(以最简单的形式,只是按特定顺序的视频文件的集合)。与该应用程序一起使用的视频文件都有一个关联的元数据文件,我已经设法理解并重新创建其格式的99%。这些“项目文件”和元数据文件都是或多或少的纯XML(带有一些我还没有解释的奇怪的标记名)。

基本上,我想知道可以使用哪些方法确定这些项目文件的格式,以便我可以编写自己的文件并引用在脚本的上一部分中选择的视频文件。

应用程序目录中有许多DLL文件,并且我当时在想,也许在保存操作(在应用程序中的项目文件)中监视它们的使用可以为我指明正确的方向?如果是这样,我该怎么办?我也已经开始学习DLL注入,并且想知道这是否有用吗?

#1 楼

好的,可以用很多方法解决。正如您最近学习的DLL注入一样,一个有趣的练习是使用此知识来覆盖函数:)

一个好的开始是High-Tech Bridge的Windows Presentation中的内联挂钩和此codeproject页面。您要做的是覆盖该功能。为了将WriteFileA重定向到您自己的写函数,您必须执行的操作。这使您可以通过遍历返回值以确定数据流来进行追溯。您还可以检查数据的写入方式(一次或按块)。或压缩算法。

希望我是某种形式的帮助。 :)

评论


好主意!我会试一下。我正在考虑的另一件事是使用Dependency Walker或IDA Pro(或同时使用这两者)来查看正在调用的DLL模块(在元数据的创建中,因为似乎有许多DLL用于此目的)。然后,我打算编写自己的DLL来代替它们,并“中间人”进行数据传输...您认为这是一种合理的方法(与您的方法结合使用)吗?我给你最好的(也是唯一的!)答案:)

–araisbec
2013年9月23日19:22

好吧,只要尝试一下您认为最快的方法即可。如果没有结果,请尝试其他方法。如果您真正从事逆向工程,则IDA Pro是一项不错的投资。但是如果只是业余爱好/附带项目,由于产品成本的原因,我将不理会它(也许是IDA Free)。

– Stolas
13年9月24日在6:28