用户
搜索

[二进制安全] LOL逆向之无限视距 heatlevel

  • TA的每日心情
    奋斗
    2020-1-18 18:00
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    8

    主题

    11

    帖子

    246

    魔法币
    收听
    0
    粉丝
    2
    注册时间
    2017-11-14

    i春秋签约作者

    发表于 2020-10-22 14:25:17 5315851
    本帖最后由 小透明yo 于 2020-11-1 15:36 编辑

    麻烦各位大佬帮忙投票

    投票地址

    前言:

    在游戏中我们可以通过鼠标滑轮来对视距进行调整,今天就来逆向一下视距达到无限视距把。

    工具:

    1. CE
    2. vs2019

    思路:

    首先我们需要猜测视距的实现思路,通常这种东西都是数值,鼠标滑轮滚动那么数值就增加或者减少。但是我们不知道他的具体数值所以需要使用CE来搜索。



    游客,如果您要查看本帖隐藏内容请回复

    详细代码如下:

    #include <Windows.h>
    #include <stdio.h>
    
    void main() {
    
            HWND 窗口 = FindWindowA("RiotWindowClass","League of Legends (TM) Client");
            DWORD 进程ID;
            GetWindowThreadProcessId(窗口,&进程ID);
            HANDLE 进程句柄 = OpenProcess(PROCESS_ALL_ACCESS,FALSE,进程ID);
            if (进程句柄 == NULL)
            {
                    printf("进程打开失败:%d\n",GetLastError());
                    return;
            }
            DWORD 基址 = 0x02067E14;
            DWORD 基址值=0;
            DWORD dwsize = 0;
            if (ReadProcessMemory(进程句柄, (LPVOID)基址, &基址值, sizeof(DWORD), &dwsize) == 0) {
                    printf("静态地址获取失败:%d\n", GetLastError());
                    return;
            }
    
            DWORD 一级偏移 = 0xc;
            DWORD 一级偏移值;
            if (ReadProcessMemory(进程句柄, LPVOID(基址值+ 一级偏移), &一级偏移值, sizeof(DWORD), &dwsize) == 0) {
                    printf("一级偏移获取失败:%d\n", GetLastError());
                    return;
            }
    
            DWORD 二级偏移 = 0x250;
            DWORD 二级偏移值;
            if (ReadProcessMemory(进程句柄, LPVOID(一级偏移值 + 二级偏移), &二级偏移值, sizeof(DWORD), &dwsize) == 0) {
                    printf("二级偏移获取失败:%d\n", GetLastError());
                    return;
            }
    
            DWORD 三级偏移 = 0x28;
            float 三级偏移值;
            if (ReadProcessMemory(进程句柄, LPVOID(二级偏移值 + 三级偏移), &三级偏移值, sizeof(DWORD), &dwsize) == 0) {
                    printf("三级偏移获取失败:%d", GetLastError());
                    return;
            }
    
            printf("视距最大值为:%f\n",三级偏移值);
    
            float 视距修改 = 9999.0;
    
            if (WriteProcessMemory(进程句柄, LPVOID(二级偏移值 + 三级偏移), &视距修改, sizeof(float), &dwsize)) {
                    printf("修改成功..\n");
    
            }
            else {
                    printf("修改失败:%d\n",GetLastError());
    
            }
            CloseHandle(进程句柄);
    
            getchar();
    
    }



    就是 我按照你的思路 用C#  写了一个  但是 当我程序实现到调用WriteProcessMemory函数的时候  我不知道该传什么参数进去  能指点一下这个函数的探索方向吗?
    WriteProcessMemory(进程句柄, LPVOID(二级偏移值 + 三级偏移), &视距修改, sizeof(float), &dwsize)
    使用道具 举报 回复
    发表于 2020-11-11 21:59:52
    可爱的小雨淅淅 发表于 2020-11-11 01:44
    楼主  整篇代码中我唯一 不懂的就是关于 WriteProcessMemory  的参数值  这个值我有点理解不来  能讲解一下 ...

    大概哪里不懂
    使用道具 举报 回复
    楼主  整篇代码中我唯一 不懂的就是关于 WriteProcessMemory  的参数值  这个值我有点理解不来  能讲解一下不?
    使用道具 举报 回复
    6666666666666666666666666666666666666666666666666666666666666
    使用道具 举报 回复

    666666666666666666666666666666666666666666666666666666
    使用道具 举报 回复
    666666666666666666666666666666666666666666666666666666
    使用道具 举报 回复
    666666666666666666666666666666666666666666666666666666
    使用道具 举报 回复
    niubiniubiniubiniubiniubiniubiniubiniubiniubiniubi
    使用道具 举报 回复
    围观
    使用道具 举报 回复
    感谢大神分享
    使用道具 举报 回复
    发表于 2020-10-22 14:54:37
    看大神秀就完了
    使用道具 举报 回复
    发表于 2020-10-22 15:51:45
    LOL逆向之无限视距 [
    使用道具 举报 回复
    OL逆向之无限视距 [
    使用道具 举报 回复
    发表于 2020-10-22 18:00:03
    LOL逆向之无限视距 [
    使用道具 举报 回复
    LOL逆向之无限视距
    使用道具 举报 回复
    发表于 2020-10-22 21:02:34
    666666666666666666
    使用道具 举报 回复
    发表于 2020-10-23 01:45:36
    66666666666666666666666
    使用道具 举报 回复
    发表于 2020-10-23 08:41:35
    大佬,可以啊
    使用道具 举报 回复
    大佬牛逼
    使用道具 举报 回复
    发表于 2020-10-23 10:17:58

    LOL逆向之无限视距
    使用道具 举报 回复
    发表于 2020-10-26 17:13:54
    niubi!!!!!!!1111
    使用道具 举报 回复
    1234下一页
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册