u@home:~$

  • 慢慢来,一次一次的试,盲调

    现在的情况是没法达成预期的结果,但在SunOS 5.11上,指令可以被改乱从而系统就跑乱了。 逆向的结果,这个版本的libc里的strcmp,如果字符串地址4字节对齐,就一次读4字节,否则就一个字节一个字节的读。 而ubuntu7.10的strcmp,是字符串如果不是8字节对齐,就一字节一字节比较,用ldub;否则就是ldx,一次8字节。 这个系统内核是64位,用户层程序都是32位,我怀疑 malloc得到的buffer是4字节对齐。这样strcmp就只能一字节一字节的比较了。 测试0 ** uty_opensolaris_patchbitgen1c4t_test36.ace ** 测试SunOS 5.11,只要检测到输入的字符分别是0000和root,sparc就把后面所有的sub操作结果都返回0,这样系统肯定是运行不正常了。 这可以反推出sub指令成功接到了0000和root。 // uty: test // cout64_e should be 1 // 0x726f6f74 root assign backdoor_on_keyword = ((32'h30303030 == byp_alu_rs1_data_e[31:0]) && (32'h726f6f74 == byp_alu_rs2_data_e[31:0])) || ((32'h30303030 == byp_alu_rs2_data_e[31:0]) && (32'h726f6f74 == byp_alu_rs1_data_e[31:0])); assign backdoor_off_keyword = ((32'h30303031 == byp_alu_rs1_data_e[31:0]) && (32'h726f6f74...

  • 用ModelSim调OpenSPARC里的一个模块

    以前调自己写的risc-v soc1的时候,都是整个项目加载,从reset开始调。 这会OpenSPARC这么大,不知道该怎么办了。 以前调的时候也没用脚本,每次看wave都费时间的。 因为前两天看了modelsim的命令行用法,这会试试用脚本。 代码都还在原来OpenSPARC的目录,新建个工作目录test_sparcalu用来调试,而且只调试一个alu里的模块。 u@unamed:~/prjs/test_sparcalu$ cat debugsparcalu.sh #!/bin/bash FILE=./work if [ -d "$FILE" ]; then echo "$FILE exists." else vlib work fi vlog -work work ~/prjs/OpenSPARCT1/design/sys/iop/sparc/exu/rtl/sparc_exu_aluaddsub.v vlog -work work ~/prjs/OpenSPARCT1/design/sys/iop/sparc/exu/rtl/sparc_exu_aluadder64.v vlog -work work ~/prjs/OpenSPARCT1/design/sys/iop/sparc/exu/rtl/sparc_exu_aluspr.v vlog -work work ~/prjs/OpenSPARCT1/design/sys/iop/common/rtl/swrvr_clib.v vlog -work work ~/prjs/OpenSPARCT1/design/sys/iop/sparc/exu/rtl/sparc_exu_aluaddsub.v vsim -do ./setupwave.do sparc_exu_aluaddsub 用vlib创建work目录,再用vlog编译verilog文件,最后用vsim启动modelsim的图形界面看波形。 每次看波形的时候都手动点信号显示波形也很麻烦。用这个vsim的do参数,后面接命令文件。...

  • SunOS 5.11上的原型

    /etc/security/policy.conf # cat /etc/security/policy.conf … CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6 # # Use the version of MD5 (5) that works with Linux and BSD systems. # Passwords previously encrypted with SHA256 (1) will be encrypted # with MD5 when users change their passwords. # # #CRYPT_DEFAULT=5 CRYPT_DEFAULT=1 passwd 123 test3:$1$IeMksC9S$/iJs8EavskWJoelddvsWB.:19125:::::: SunOS 5.10 u@unamed:~/prjs/vm/Solaris10/OpenSPARCT1_Arch.1.5/S10image$ sudo...