首页 > 其他分享 >在内网搭建GitBlit中会发现 有两张图片展示不了的解决方法

在内网搭建GitBlit中会发现 有两张图片展示不了的解决方法

时间:2022-08-19 00:44:51浏览次数:57  
标签:jclasslib uInfo cf 两张 GitBlit import infos out 中会

因为在源码中图片的地址是:

 

 

 

 

所以需要将GitBlit中的 【gitblit.jar】 中 com.gitblit.utils.ActivityUtils.class代码中,修改一下。

  

1、首先在有网的环境下将图片下载下来

 

 

 

 

图片:

 

 

 

 

 

 

  

下载后的图片放入

 

 

  

2、使用【jclasslib_win64_5_3.exe】工具找到位置

 

 

 

点击 箭头部分

 

 

 

 

随便创建一个java工程导入【jclasslib.jar】包

用刚才找到的位置修改class中的内容

package com.cs;
 
 
 
import java.io.*;
 
import org.gjt.jclasslib.io.ClassFileWriter;
 
import org.gjt.jclasslib.structures.CPInfo;
 
import org.gjt.jclasslib.structures.ClassFile;
 
import org.gjt.jclasslib.structures.constants.ConstantUtf8Info;
 
public class Test {
 
    public static void main(String[] args) throws Exception {
 
        String filePath = "C:\\Users\\admin\\Desktop\\ActivityUtils.class";
 
        FileInputStream fis = new FileInputStream(filePath);
 
        DataInput di = new DataInputStream(fis);
 
        ClassFile cf = new ClassFile();
 
        cf.read(di);
 
        CPInfo[] infos = cf.getConstantPool();
 
        int count = infos.length;
 
        for (int i = 0; i < count; i++) {
 
            if (infos[i] != null) {
 
                System.out.print(i);
 
                System.out.print(" = ");
 
                System.out.print(infos[i].getVerbose());
 
                System.out.print(" = ");
 
                System.out.println(infos[i].getTagVerbose());
 
                if (i == 243) {//刚刚找到的是21位置
 
                    ConstantUtf8Info uInfo = (ConstantUtf8Info) infos[i]; //刚刚那里是CONSTANT_Utf-8_info所以这里要用这个
 
                    uInfo.setBytes("/touxiang2.png".getBytes());  // 需要替换的路径
 
                    infos[i] = uInfo;
 
                }
 
            }
 
        }
 
        //这种方式也可以,一样的
 
/*        if(infos[count] != null) {
            ConstantUtf8Info uInfo = (ConstantUtf8Info) infos[i]; //刚刚那里是CONSTANT_Utf-8_info所以这里要用这个
            uInfo.setBytes("baidu".getBytes());
            infos[count] = uInfo;
        }*/
 
        
 
        cf.setConstantPool(infos);
 
        fis.close();
 
        File f = new File(filePath);
 
        ClassFileWriter.writeToFile(f, cf);
 
    }
 
}

 


然后运行后,使用【jd-gui.exe 】 查看有没被更改

 

 

  

更改后然后去替换【gitblit.jar】 中的 com.gitblit.utils.ActivityUtils.class 即可。

标签:jclasslib,uInfo,cf,两张,GitBlit,import,infos,out,中会
From: https://www.cnblogs.com/valu/p/16600636.html

相关文章

  • RabbitMQ零碎整理,总有一天在你工作中会用到
    概念MQ:消息队列(消息中间件),开源的基于AMQP协议的消息中间件,异步 解耦 削峰核心作用:1.异步2.解耦 3.消息通信RabbitMQ消息的类型:1.点对点2.Worker3.发布/定义(交换......
  • git——win10下安装Gitblit
    1、下载http://gitblit.github.io/gitblit/https://github.com/gitblit/gitblit/releases/download/v1.9.3/gitblit-1.9.3.zip2、解压 gitblit-1.9.3.zip3、编辑defa......