工具:HexWorkship v6.7

编译命令: javac -encoding UTF-8 First.java
运行命令: java -Dfile.encoding=UTF-8 First

  • First。打印一条信息,
    • 目标:修改字节码文件,修改信息
    • 目标一:尝试使用 HexWorkshop 修改.class中的内容,只修改字符串的内容,如把world修改成word!,注意字符个数要相等,不要增加或减少
    • 目标二:尝试使用 HexWorkshop 修改.class中的内容,只修改字符串的内容,如把world修改成其它字符,新字符个数要变多
      • 找到helloworld对应的字符串,往前找到01000c,01表示是utf8字符串,0c是后面字符串的长度,改成0d,再添加一个字符就好
    • 目标三:尝试使用 HexWorkshop 修改.class中的内容,只修改字符串的内容,如把world修改成其它字符,新字符个数要变少
      • 找到helloworld对应的字符串,往前找到01000c,01表示是utf8字符串,0c是后面字符串的长度,改成0b,再删除一个字符就好
  • C001_if

在线字符串和16进制互转: http://www.ku51.net/ox2str/

文件列表

#include <stdio.h>
#include <string.h>

int main(void)
{
    char user[16] = {'a', 'b', 'c'};
    char input[100];

    printf("Enter a value: ");
    gets(input);
    printf("\nYou entered: ");
    puts(input);
    int ret = strcmp(user, input);
    if (ret == 0)
    {
        printf("suuccess");
    } else {
        printf("fail");
    }

    return 0;
}
/**
 * First.java.
 *
 * @since 2022-10-10
 */
public class First {
// 尝试使用 HexWorkshop 修改.class中的内容,只修改字符串的内容,如把world修改成,,,,,注意字符个数要相等,不要增加或减少
    public static void main(String[] args) {
        System.out.println("hello, world");
    }
}
public class C001_if {

// 尝试使用 HexWorkshop 修改.class中的内容
// 修改if判断,使其跳过校验
    public static void main(String[] args) {
        if (args.length < 1) {
            System.err.out("need at least one argement.");
            return;
        }
        String real = "ree";
        String userInput = args[0];
        if (real.equals(userInput)) {
            System.out.println("success");
        } else {
            System.out.println("fail");
        }
    }
}

作者:张三  创建时间:2026-03-11 20:16
最后编辑:张三  更新时间:2026-03-11 20:24