u@home:~$

  • 跟着看一个double fetch

    之前qemu的ld范围太大了,连pop edx这样的指令因为有读栈的操作,都会用道ld。 现在改成只抓0x8b的mov,也就是mov Gv, Ev,从Ev往Gv(寄存器)里搬。 因为是64位系统,0x8b前可能会有prefix 0x48。 比如下面这条记录: DOUBLE FETCH: cr3 0x107c36000, syscall 0x42 eip 0xfffff8006a08a540, user_address 0xc93b1fed88, user_data 0xc93b1fed90, s->pc 0xfffff8006a08a8a8 eip 0xfffff8006a079030, user_address 0xc93b1fed88, user_data 0xc93b1fed90, s->pc 0xfffff8006a07911e DIFF EIP 因为不知道kernel的加载基址,所以只能用笨办法在ghidra里按最后4位的地址搜。 这会只需要找8b或者48 8b的,如果还不好找,可以考虑把modrm的这个字节也打印出来。 0xfffff8006a08a540 ************************************************************** * FUNCTION * ************************************************************** undefined FUN_1400ca52c() undefined AL:1 <RETURN> undefined8 Stack[0x18]:8 local_res18 XREF[2]:...

  • 测试CPU后门 ssh远程登陆

    在qemu上测试CPU后门ssh远程登陆,也是可以的。 没在OpenSPARC T1的fpga上测,因为ramdisk还没搞定,ubuntu7.10的网络还是不通,而且也没法装sshd。 因为毕竟ssh也是通过本地login进程验证的。 不知道ssh是不是只能用username@ip的方式登陆还是有和login一样的界面,可以输入用户名密码。 不过username@ip这种方式也是一样的。 ssh不同的一点就是不能输入空密码。 好像默认远程登陆是不能用root登陆的,这个没办法,系统设置的原因。 u@debiansparc64:~$ ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group defau0 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp1s1f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast...

  • 编译调试sparc的日常

    之前的blog上都有详细的步骤,当时把过程中遇到的问题也都放到一起了。 现在这几天连着编译运行sparc,步骤简化如下。 一次开几个terminal term0 opensparc source term1 u@unamed:~/prjs/OpenSPARCT1$ source OpenSPARCT1.bash u@unamed:~/prjs/OpenSPARCT1$ source ../../Xilinx91i/settings.sh u@unamed:~/prjs/OpenSPARCT1$ rxil -device=XC5VLX110T sparc term2 u@unamed:~/prjs/OpenSPARCT1$ cp /home/u/prjs/OpenSPARCT1/design/sys/iop/sparc/xst/XC5VLX110T/sparc.ngc design/sys/edk/pcores/iop_fpga_v1_00_a/netlist/ term3 u@unamed:~/prjs$ ./startxps.sh Hardware -> Clean Netlist Hardware -> Clean Bits Hardware -> Clean Hardware Hardware -> Generate Bitstream term4 u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/ISE/settings64.sh u@unamed:~/prjs/testaceos$ source ~/Xilinx/10.1/EDK/settings64.sh u@unamed:~/prjs/testaceos$ xmd...