红警DIY论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 318|回复: 3

编译成功的Ares 0.A,启动后无反应。。。?

[复制链接]
发表于 2020-11-30 22:57:58 | 显示全部楼层 |阅读模式
本帖最后由 Scrooge2029 于 2020-11-30 23:04 编辑

按照教程把dll编译出来,放到游戏根目录,用了论坛2019教程附件的syringe和runAres.bat、仓库自带的inj、编译成功得到的dll,点击bat运行一阵子没反应,根据Ares群里某位大佬的说法+自己猜测是版本支持的问题,但是用官方中文的1.001补丁包(moddb下载的)和MO3.3.0的gamemd.exe试了一下还是会报同样的错,Ares.dll的代码未修改任何部分,直接从Zero_Fanker大神的0.A教学仓库fork的:

我的Ares仓库

编译工具是VC++ v142(VS2019),gamemd.exe版本是1.001(不知道为啥打了1.001补丁这个文件的版本依然是1.011,是因为不能降级么。。。?)如果有好心人遇到了相同的情况,希望可以交流下思路,感激不尽!
顺带一提,红警之家的尤里复仇1.001其实也是1.011

以下是Syringe的日志:

  1. [22:31:10] Syringe 0.7.2.0
  2. [22:31:10] ===============

  3. [22:31:10] WinMain: arguments = ""gamemd.exe"  -cd -win"
  4. [22:31:10] WinMain: Trying to load executable file "gamemd.exe"...

  5. [22:31:10] SyringeDebugger::RetrieveInfo: Retrieving info from the executable file...
  6. [22:31:10] SyringeDebugger::RetrieveInfo: Executable information successfully retrieved.
  7. [22:31:10]         exe = gamemd.exe
  8. [22:31:10]         pImLoadLibrary = 0x007E1220
  9. [22:31:10]         pImGetProcAddress = 0x007E1250
  10. [22:31:10]         pcEntryPoint = 0x007CD80F
  11. [22:31:10]         dwExeSize = 0x00497110
  12. [22:31:10]         dwExeCRC = 0x098465B3
  13. [22:31:10]         dwTimestamp = 0x3BDF544E

  14. [22:31:10] SyringeDebugger::RetrieveInfo: Opening gamemd.exe to determine imports.
  15. [22:31:10] WinMain: SyringeDebugger::FindDLLs();

  16. [22:31:10] SyringeDebugger::FindDLLs: Recognized DLL: "Ares.dll"
  17. [22:31:10] SyringeDebugger::Handshake: Calling "Ares.dll" ...
  18. [22:31:10] SyringeDebugger::Handshake: Answers "Found Yuri's Revenge 1.001 (CD). Applying Ares 16.2.813." (0)
  19. [22:31:10] SyringeDebugger::FindDLLs: Done (1166 hooks added).

  20. [22:31:10] WinMain: SyringeDebugger::Run("-cd -win");

  21. [22:31:10] SyringeDebugger::Run: Running process to debug. cmd = "gamemd.exe -cd -win"
  22. [22:31:16] SyringeDebugger::Run: Allocating 0x584 bytes...
  23. [22:31:16] SyringeDebugger::Run: pAlloc = 0x001C0000
  24. [22:31:16] SyringeDebugger::Run: Writing DLL loader & caller code...
  25. [22:31:16] SyringeDebugger::Run: pcLoadLibrary = 0x001C0000
  26. [22:31:16] SyringeDebugger::Run: Entering debug loop...
  27. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_CTOR
  28. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_DTOR
  29. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_SaveLoad_Prefix
  30. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_Save_Suffix
  31. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_SaveLoad_Prefix
  32. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - AbstractClass_Load_Suffix
  33. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - HouseClass_FindFirstBuildableBuildingTypeFromArray_SWAllowed
  34. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_CTOR
  35. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_DTOR
  36. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_SaveLoad_Prefix
  37. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_Load_Suffix
  38. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_SaveLoad_Prefix
  39. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - InfantryClass_Save_Suffix
  40. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_CTOR
  41. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_SaveLoad_Prefix
  42. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_Load_Suffix
  43. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_SaveLoad_Prefix
  44. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_Save_Suffix
  45. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TActionClass_SDDTOR
  46. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TechnoClass_SelectWeapon
  47. [22:31:16] SyringeDebugger::HandleException: Could not retrieve ProcAddress for: Ares.dll - TechnoClass_Update_SkipSelfHeal
  48. [22:31:16] SyringeDebugger::HandleException: Finished retrieving proc addresses.
  49. [22:31:16] SyringeDebugger::HandleException: Creating code hooks.
  50. [22:31:16] SyringeDebugger::HandleException: Exception (Code: 0xC0000005 at 0x0052ACEF)!
  51. [22:31:16]         The process tried to write to 0x6F60537E.

  52. [22:31:16] Registers:
  53. [22:31:16]         EAX = 0x6F605376        ECX = 0x00000000        EDX = 0x6F605386
  54. [22:31:16]         EBX = 0x07106DF0        ESP = 0x0019EF08        EBP = 0x0019EF38
  55. [22:31:16]         ESI = 0x6F60537A        EDI = 0x00000003        EIP = 0x0052ACEF
复制代码


后面都是类似的错,写也写不下,就不放上来了。。。
 楼主| 发表于 2020-12-1 01:43:44 这篇帖子是使用手机发表的! | 显示全部楼层
额,别的地方问了一下,貌似我这个补丁更新成功了,日志里能看到识别出gamemd.exe是1.001,可能是代码有些不影响编译的逻辑性错误或者单纯是地址不匹配。。。?
 楼主| 发表于 2020-12-1 09:34:38 这篇帖子是使用手机发表的! | 显示全部楼层
问题解决了,参考了码云wiki(捂脸)
52b339f1ea6f3323.png
发表于 2020-12-18 18:23:44 | 显示全部楼层
  .
[}%C_3DZHZ)O{]KXTR1`N5A.gif
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY官方论坛

GMT+8, 2021-3-3 19:25 , Processed in 0.043910 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表