elf研究记录保存

  • 分析流程图

elf头部数据

头部数据中的e_phoff和e_shoff字段

elf程序请求头

elf Session请求头

elf Session请求头2
   // 传入8009 输出 [73, 31, 0, 0]
    public static byte[] int2Byte(int number) {
        int temp = number;
        byte[] b = new byte[4];
        for (int i = 0; i < b.length; i++) {
            b[i] = new Integer(temp & 0xff).byteValue();
            temp = temp >> 8; // 向右移8位
        }
        return b;
    }

解释: 8009 二进制 0001 1111 0100 1001 ,0xff 二进制1111 1111,填充后0000 0000 1111 1111
第一步,传入8009,8009&0xff- > 保留低8位,即0100 1001 , new Integer(temp & 0xff).byteValue()的值为 73
第二步,8009右移8位,再&0xff,即0001 1111, new Integer(temp & 0xff).byteValue()的值为 31
第三步,再右移8位,全为0,第四步一样全为0

原码反码补码这三个概念

  • 对于正数(00000001)原码来说,首位表示符号位,反码 补码都是本身
  • 对于负数(100000001)原码来说,反码是对原码除了符号位之外作取反运算即(111111110),补码是对反码作+1运算即(111111111)

你可能感兴趣的:(elf研究记录保存)