2

CyLog 的WildRename是一个对文件执行批量重命名的好程序。它的问题是,虽然主窗口可以调整大小,但它没有最大化框,这使得它的大小和使用有点令人沮丧。而且,他们已经很长时间没有进行任何更新,因此该程序基本上已停产。

我运行 WildRename 并使用 WinSpy++ 修改其窗口的样式以手动包含WS_MINIMIZEBOX样式和 bam!,它现在按预期运行。

现在的问题是如何使其永久化。

我的第一反应是启动 ResHacker,但问题是需要修改的样式是非对话框应用程序的主窗口的样式,所以 ResHacker 没有办法做到这一点。

我尝试的下一件事是在十六进制编辑器中打开它,找到与标题栏对应的字符串的地址。然后我在 W32Dasm 中打开该文件并找到引用标题栏字符串地址的代码地址。我这样做是为了找到创建主对话框的位置,以便我可以修改传递给CreateWindow(). 不幸的是,我找不到CreateWindow对titelbar 字符串引用附近任何地方的调用,CreateWindowEx而且我能找到的所有调用似乎(显然)都不是用于创建主窗口的调用。

是否有一种简单/自动化的方式来修改主窗口的样式(假设是非对话框应用程序)?

4

2 回答 2

0

必须调用CreateWindow/Ex(),特别是如果它不是来自资源的对话。你只需要更加努力地寻找。我会使用 IDA 而不是 WinDasm。它将程序集反编译成更易于理解的代码,并且它有一个内置的调试器。您可以在标题字符串上放置一个断点,并实时查看哪些代码实际触及它,然后将其返回到访问代码。

于 2012-12-26T03:13:58.047 回答
0

You could use a debugger like OllyDBG to dump the exe memory after the edit with WinSpy++, then use that exe or compare the files to see where the change is if you want to see what you've missed

于 2012-12-26T03:01:00.697 回答