生活情怀-神话暗黑-暗黑破坏神2

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3320|回复: 0
收起左侧

1.13C自己编写并加载自己写的动态链接库

[复制链接]
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 7 天

    [LV.3]卷轴印记

    912

    主题

    88

    元宝

    2380 小时

    在线时间

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    88
    发表于 2020-10-2 00:46:31 | 显示全部楼层 |阅读模式
    转载:https://tieba.baidu.com/p/6566719813


    加载可以有两种方式:
    第一种为用大箱子加载DLL
    第二种可以修改D2win或者D2Launch来加载我们的DLL
    (D2win和D2Launch两个的区别在于你用那种方式打开游戏,D2Launch对应Game.exe,D2win对应D2Loader.exe)


    第一种就不多说了,直接在PlugY配置文件中加载




    第二种方式如下:




    如果用D2Loader.exe启动游戏
    我们用OD打开D2win,找到如下位置:
    6F8EAB47 > \B8 01000000 mov eax,0x1
    将此处的汇编代码修改为:
    6F8EAB47 /E9 B4F70000 jmp 6F8FA300
    因为同样是五个字节,此处修改完毕
    我们跳到6F8FA300处,此处修改汇编代码:
    push 6F8FE500 // 6F8FE500处写入我们要加载的DLL全名
    call dword ptr ds:[0x6F8FB208] //call dword ptr ds:[<&KERNEL32.LoadLibrar>; kernel32.LoadLibraryA,调用LoadLibrary这个API函数
    mov eax,0x1
    retn // 或者JMP 6F8EAB4C ,返回到我们的原代码处
    此时最好先保存替换一遍D2win.dll
    最后就是在6F8FE500二进制写入我们的DLL,例如,我们要加载的DLL全名为D2haha.dll
    则在6F8FE500处右击->数据窗口中跟随->选择
    然后双击编写ASCII码D2haha.dll
    之后保存替换原D2win.dll即可
    (未测试可否加载无数个DLL)




    如果用Game.exe启动游戏
    我们用OD打开D2Launch,找到如下位置:
    6FA4E363 . 50 push eax
    6FA4E364 68 14FBA56F push 6FA5FC01 // 6FA5FC01处写入我们要加载的DLL全名
    call dword ptr ds:[0x6FA5C2D0] //call dword ptr ds:[<&KERNEL32.LoadLibrar>; kernel32.LoadLibraryA,调用LoadLibrary这个API函数
    6FA4E36F 58 pop eax
    之后将6FA4E397之前的所有汇编代码NOP掉
    6FA4E370 90 NOP
    "........."
    6FA4E397 90 NOP
    此时最好先保存替换一遍D2Launch.dll
    在6FA5FC01处右击->数据窗口中跟随->选择
    编写ASCII码D2haha.dll
    保存替换原D2Launch.dll即可
    如此可以加载很多DLL,如下:
    6FA4E363 50 PUSH EAX
    6FA4E364 68 14FBA56F PUSH D2Launch.6FA5FB14
    6FA4E369 FF15 D0C2A56F CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]
    6FA4E36F 58 POP EAX
    6FA4E370 50 PUSH EAX
    6FA4E371 68 14FBA56F PUSH D2Launch.6FA5FB24
    6FA4E376 FF15 D0C2A56F CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]
    6FA4E37C 58 POP EAX
    6FA4E37D 50 PUSH EAX
    6FA4E37E 68 14FBA56F PUSH D2Launch.6FA5FB34
    6FA4E383 FF15 D0C2A56F CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]
    6FA4E389 58 POP EAX
    6FA4E38A 50 PUSH EAX
    6FA4E38B 68 14FBA56F PUSH D2Launch.6FA5FB44
    6FA4E390 FF15 D0C2A56F CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryA>]
    6FA4E396 58 POP EAX
    6FA4E397 90 NOP
    (未测试可否远跳加载无数个DLL之后再跳回来)
    神话战网出品,必出精品!

    嫌怪物和地图素材太小???赶紧找我定制吧!!!
    QQ:281886256
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|神话暗黑 ( 陕ICP备18004004号-1 )

    GMT+8, 2026-2-2 03:13 , Processed in 0.071312 second(s), 23 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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