吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1126|回复: 9
收起左侧

[求助] Net程序,如何hook或重定向服务器?

[复制链接]
万神fake 发表于 2024-8-16 09:42
  • 使用NETReactorSlayer反编译出来了程序源码,分析出来程序判断Vip是通过HttpWebRequest从网络获取的信息,使用Reqable拦截修改请求,设置Vip信息成功。
[C#] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
private const string DefaultServerIp = "x.x.x.x";
private const string AlternateServerIp = "x.x.x.x";
private const string UserAgent = "Mozilla/5.2 (KHTML-XVA)";
private const int TimeoutMilliseconds = 5000;
private string _authToken;
 
public async Task<string> FetchDataAsync(string endpoint, string id = "")
{
    string serverIp = DefaultServerIp;
    string result = string.Empty;
 
    try
    {
        string url = $"http://{serverIp}:6096/api/{endpoint}{(string.IsNullOrEmpty(id) ? "" : $"/{id}")}";
         
        using (var request = (HttpWebRequest)WebRequest.Create(url))
        {
            request.UserAgent = UserAgent;
            request.Headers.Add("CL", Convert.ToBase64String(Encoding.UTF8.GetBytes(_authToken)));
            request.Timeout = TimeoutMilliseconds;
 
            using (var response = await request.GetResponseAsync() as HttpWebResponse)
            using (var stream = response.GetResponseStream())
            using (var reader = new StreamReader(stream, Encoding.UTF8))
            {
                result = await reader.ReadToEndAsync();
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Error: {ex.Message}");
        serverIp = serverIp == DefaultServerIp ? AlternateServerIp : DefaultServerIp;
        result = "X";
    }
 
    return result;
}

现在问题是用Reqable不够优雅,会影响到游戏加速器的使用,因为是反编译出来的程序,研究了DotNetDetour,函数名称是会变动的,也不能修改il指令,再加上程序经常更新,所以想用网络拦截的方法,有什么实现思路吗?网络拦截最好只影响目标程序

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

bester 发表于 2024-8-16 10:03
hosts 直接域名转向即可
aiohttp建立一个服务器,返回你要的东西

https://www.52pojie.cn/thread-1915517-1-1.html
kingdjh 发表于 2024-8-16 10:54
本帖最后由 kingdjh 于 2024-8-16 10:57 编辑

用DotNetDetour或者Harmony直接hook底层的http请求函数呢?
wtujoxk 发表于 2024-8-16 10:55
本帖最后由 wtujoxk 于 2024-8-16 10:58 编辑
bester 发表于 2024-8-16 10:03
hosts 直接域名转向即可
aiohttp建立一个服务器,返回你要的东西

DotNetDetour比那个更好,hook FetchDataAsync GetResponseStream ReadToEndAsync哪一个都行
gksj 发表于 2024-8-16 11:37
直接HOOK系统自带的net程序集的GetResponseStream()方法返回数据,在HOOK里面判断一下是不是请求许可的,如果是就返回对应数据,如果不是就调用原始的方法代码.
 楼主| 万神fake 发表于 2024-8-16 12:46
都好复杂啊,还是用Reqable吧
艾莉希雅 发表于 2024-8-16 15:41
上鸿蒙X试试
3yu3 发表于 2024-8-16 18:55
盯一下此帖子,看下大佬们有何高招,一起学学。
msmvc 发表于 2024-8-17 18:39
能看到源码就好办了
5楼6楼的方法不错
自己用vs写个webapi也行,返回啥都能控制,serverIp用修改hosts文件解决
msmvc 发表于 2024-8-17 18:42
楼主,这是什么程序,发出来,有大佬直接就给你搞定吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-26 03:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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