LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog

LOL查找换肤CALL和调用(一)

LOL动态换肤原理不用过多赘述了,调用换肤CALL即可实现。

换肤CALL查找

1.确认英雄名
随便找个英雄进入游戏,确认所选英雄英文名,我这边选的是刀妹对应的为Irelia,不知道的可以到百度百科上查
图片[1] - LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog

2.CE 启动
CE字符串搜索Irelia 3244个结果不要怕,我们只需要看最下面的十几个地址就行。
图片[2] - LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog
选择第一个,查看什么访问了这个地址,计数为6,Irelia 的长度也为6那么这个可能就是我们要找的地址
图片[3] - LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog
进入汇编,这里就是对 Irelia 每个字符的确认,确认完成之后就是换肤了
图片[4] - LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog

那么下面的CALL就是换肤CALL了
一共5个参数:
—————–
r8: 换肤ID
rax:1416BA198
r9: 0
rdx: 人物名称
rcx:人物地址
——————
换肤 call 14028c190
有了这些地址就能调用了
图片[5] - LOL查找换肤CALL和调用(一) - 软件调试区论坛 - 软件安全 - 孤独收藏阁 's Blog

以下是deepseek写的CALL代码

[C++] 纯文本查看 复制代码
1
2
3
4
5
6
//通用CALL
typedef uintptr_t(__stdcall* UniversalCall_t)(uintptr_tuintptr_tuintptr_tuintptr_tuintptr_t);
uintptr_t UniversalCall(uintptr_t functionAddress, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5) {
    UniversalCall_t callFunction = (UniversalCall_t)functionAddress;
    return callFunction(arg1, arg2, arg3, arg4, arg5);
}

调用

[Asm] 纯文本查看 复制代码
1
UniversalCall(MODELFUNC,Read64(PLAYERBASE), Read64(PLAYERBASE)+ NAMEOFFERST,SKINID,0,RAX)

我用的是劫持dll的方式,工具:AheadLib ,  劫持DLL名称:version.dll

请登录后发表评论

    没有回复内容