V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
banli
V2EX  ›  外包

帮朋友发个外包,无编译环境下修改 Java 的 class 文件,修改里面的代码逻辑。

  •  
  •   banli · 2019-07-31 17:28:38 +08:00 · 973 次点击
    这是一个创建于 1944 天前的主题,其中的信息可能已经有所发展或是发生改变。

    文件 Domain.class(接单时给到)

    修改函数

      private static void gotoDomain(HttpServletRequest request, HttpServletResponse response, String url)
      {
        AccountData account = Utils.getAccountData(request);
        String domainName = parseDomainName(url);
        if (account.getAppDomain().getDomainName().equals(domainName))
        {
          logger.info("目标域名{}即当前域名, 可直接完成域名登录", domainName);
          account.setGameDomain((Domain)GAME_DOMAIN_LIST.get(domainName));
          response.setHeader("refresh", "0");
        }
        else {
          String code = URLs.genRedirectToken("l", AccountData.toJSON(account));
          url = URLs.removeQueryStringArg(url, "gdt");
          url = URLs.appendQueryStringArg(url, "gdt", code);
          Utils.redirect(request, response, url);
        }
      }
    

    修改要点:

    Utils.redirect(request, response, url);

    这一行前加判断,如果 url 不带 443 端口,则给 url 加上:443 端口

    预期:

    1. url 如 http://www.baidu.xyz/b/a 则会变成 http://www.baidu.xyz:443/b/a

    2. 改完后的 Domain.class 文件替换线上后,可正常运行不报错

    以上满足时方算完成

    能做的朋友带价来聊 Q 2039399031

    第 1 条附言  ·  2019-08-05 09:35:31 +08:00
    已经有朋友接单了
    9 条回复    2019-08-02 17:49:52 +08:00
    miao1007
        1
    miao1007  
       2019-07-31 17:46:59 +08:00 via Android
    直接用 nginx 做啊,为啥要改 class
    banli
        2
    banli  
    OP
       2019-07-31 17:48:24 +08:00
    @miao1007 不改 443,下一条到不了 nginx, 你懂的。
    banli
        3
    banli  
    OP
       2019-07-31 17:48:54 +08:00
    @miao1007 不改 443,下一跳到不了 nginx。
    fmumu
        4
    fmumu  
       2019-07-31 19:56:34 +08:00 via Android
    只给一个 class,把代码逻辑给改了?这个有点野
    alamaya
        5
    alamaya  
       2019-07-31 20:29:42 +08:00
    懂点字节码,用 asm 搞一搞应该不难
    ezksdo
        6
    ezksdo  
       2019-07-31 21:57:03 +08:00
    MethodNode.instructructions.insert(行号,InsnLIst)
    internelp
        7
    internelp  
       2019-08-01 07:26:36 +08:00
    @banli 没看懂,为啥到不了?环境不允许吗?
    knight322
        8
    knight322  
       2019-08-01 13:32:45 +08:00
    jclasslib、javassist
    way22ex
        9
    way22ex  
       2019-08-02 17:49:52 +08:00
    加个拦截器搞一下不行吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:52 · PVG 05:52 · LAX 13:52 · JFK 16:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.