修改皮肤的原理:
在游戏的目录里文件Game\Logs\Game - R3d Logs
可以查看到如以下2行关键字
Spawning champion (英雄名称) with skinID 皮肤编号 on team 队伍分类 for clientID 游戏ID and summonername (召唤师名称)
(is 玩家或AI判断)
Hero 英雄名称(皮肤编号) created for 召唤师名称
这时候用IDA静态反汇编主程序寻找以上关键字,可以得知由以下CALL引用:
sub_658E90(召唤师名称, 英雄名称, 皮肤编号, 队伍分类, 未知参数, 游戏编号, 未知参数, 未知参数, 判断是否为对战或AI, 未知参数)
其中队伍分类只分成蓝、紫方分別为100和200
游戏编号是英雄在队伍里的编号,10位召唤师编号0~9
特征码(Array Of Byte):57 FF 73 13 8D BB 97 00 00 00 8B D7 E8
以下是寻找到的参数调用
mov eax,
mov ,eax
lea ecx,
cmp dword ptr ,10
lea eax,
push eax
cmovae ecx,
mov eax,00000064
cmp byte ptr ,00
cmovne edi,eax
push edi
push
lea edi,
mov edx,edi
call 00258E90
esp+24C = ecx = 召唤师名称
队伍分类预设值是200
检查 是否为1
是1的话将队伍分类改为100
= 皮肤编号
= 英雄名称
给点HB吧!!
总结 %后为格式化字符串:
ecx = 召唤师名称
ebx+5 = (DWORD) ObjID %d
ebx+9 = (DWORD) clientID %i
ebx+D = (BYTE)NodeID %d
ebx+F = 0(200) or 1(100) 队伍判断(蓝 or 紫)
ebx+10h = (BYTE) 有值为召唤师,不然就是AI
ebx+13h = (BYTE) skinID %d
ebx+97h = 英雄名称 %s
PATCH掉sub_658E90 (不一定就是sub_658E90 ,游戏更新便有几率变化) 后以如下方式进行参数替换:
__asm
{
mov summonername,ecx
pushad
lea edi,
mov champion,edi
call Get_champion_skinID //根据英雄名字取预先设置好的皮肤ID,可事先做好map,或直接赋值 ,当然,编号必须与英雄是对应的。英雄与皮肤是一对多关系。
cmp NameCheck,0
je Normal
mov NameCheck,0
cmp skinID,0
je Normal
mov eax,skinID
mov ,eax
Normal:
popad
push
lea edi,
jmp
}
我也想知道有答案我也试试 我也好想知道,!访问就崩溃 不知道怎么解决! 328078847 发表于 2016-5-3 20:33
这样寻找:直接打开我的电脑(win7是计算机)打开D盘。你就会看到腾讯游戏字样的文件~点开它。然后找到英雄联 ...
这个发帖主,你做贼心虚是吗
我发了这么多,你连个HB都不给
别人300的都秒发,你呢
怎么这么慢
求楼主快快发!! 要过检测滴
这样寻找:直接打开我的电脑(win7是计算机)打开D盘。你就会看到腾讯游戏字样的文件~点开它。然后找到英雄联盟。找到TCLS文件夹。然后运行Client程序(要是太多文件你可以按下文件首个英文字母快速查找~就是TCLS你就按T,Cient你就按C~)希望能帮到你~
修改皮肤的原理:
在游戏的目录里文件Game\Logs\Game - R3d Logs
可以查看到如以下2行关键字
Spawning champion (英雄名称) with skinID 皮肤编号 on team 队伍分类 for clientID 游戏ID and summonername (召唤师名称)
(is 玩家或AI判断)
Hero 英雄名称(皮肤编号) created for 召唤师名称
这时候用IDA静态反汇编主程序寻找以上关键字,可以得知由以下CALL引用:
sub_658E90(召唤师名称, 英雄名称, 皮肤编号, 队伍分类, 未知参数, 游戏编号, 未知参数, 未知参数, 判断是否为对战或AI, 未知参数)
其中队伍分类只分成蓝、紫方分別为100和200
游戏编号是英雄在队伍里的编号,10位召唤师编号0~9
特征码(Array Of Byte):57 FF 73 13 8D BB 97 00 00 00 8B D7 E8
以下是寻找到的参数调用
mov eax,
mov ,eax
lea ecx,
cmp dword ptr ,10
lea eax,
push eax
cmovae ecx,
mov eax,00000064
cmp byte ptr ,00
cmovne edi,eax
push edi
push
lea edi,
mov edx,edi
call 00258E90
esp+24C = ecx = 召唤师名称
队伍分类预设值是200
检查 是否为1
是1的话将队伍分类改为100
= 皮肤编号
= 英雄名称
给点HB吧!!
总结 %后为格式化字符串:
ecx = 召唤师名称
ebx+5 = (DWORD) ObjID %d
ebx+9 = (DWORD) clientID %i
ebx+D = (BYTE)NodeID %d
ebx+F = 0(200) or 1(100) 队伍判断(蓝 or 紫)
ebx+10h = (BYTE) 有值为召唤师,不然就是AI
ebx+13h = (BYTE) skinID %d
ebx+97h = 英雄名称 %s
PATCH掉sub_658E90 (不一定就是sub_658E90 ,游戏更新便有几率变化) 后以如下方式进行参数替换:
__asm
{
mov summonername,ecx
pushad
lea edi,
mov champion,edi
call Get_champion_skinID //根据英雄名字取预先设置好的皮肤ID,可事先做好map,或直接赋值 ,当然,编号必须与英雄是对应的。英雄与皮肤是一对多关系。
cmp NameCheck,0
je Normal
mov NameCheck,0
cmp skinID,0
je Normal
mov eax,skinID
mov ,eax
Normal:
popad
push
lea edi,
jmp
}
快快给HB啊啊 !! 这里需要配合OD 和 CE
OD附加LOL 然后 使用内存换肤软件
CE搜索未知数值
然后换皮肤 搜索变动数值
重复过滤地址
然后确定地址
接着OD hw 地址
然后Ctrl + F9返回应该就是内存换肤Call = =
页:
[1]