环境 Linux Centos 7 1、安装Supervisord及使用 Centos7.x 安装 Supervisord 使用supervisor管理进程 2、安装ASP.NET Core 运行环境...image.png 查看是否能够正常运行 ?...image.png 如上图显示,代表可以正常打开应用,端口号是8080 5、 Supervisord监听运行 切换目录 cd /etc/supervisord.d/ vim webapi.ini...Happlyfpx.WebApi.DockerUse/log/err.log stdout_logfile=/var/Happlyfpx.WebApi.DockerUse/log/out.log 6、 开放Supervisord-web端,查看运行状态
对于MIPS指令集架构描述最好的,肯定是MIPS公司出版的MIPS32和MIPS64架构规范。MIPS32是MIPS64的一个子集,用于描述具有32位通用目的寄存器的CPU。...好消息是,几乎每一个版本的MIPS架构,都有一个作为所有实现的父版本存在。 MIPS I: 最早的32位处理器(R2000/3000)使用的指令集,几乎每一个MIPS架构CPU都可以运行这些指令。...为此,一些编译器就通过实时运行时的gp指针完成这个优化。在编译或者汇编阶段,选择某些变量,把它们聚集到一起组成一块小的区域(不能超过64K)。把中间位置的变量地址存储在gp寄存器(也就是$28)中。...这也意味着,如果MIPS架构的CPU上运行的是一个没有内存映射的OS内核,则用户特权级是多余的。 另外,在用户模式下,一些指令,尤其是OS需要的CPU控制指令是非法的。...很多简单的系统(包括许多实时操作系统)一直处于内核模式运行。 2.7.3 64位地址映射 MIPS架构的地址总是通过一个寄存器的值加上16位的偏移计算得到。
直接运行程序是运行不起来的,这是因为mips架构的elf文件需要在mips环境中才能运行,而且还需要相应的动态链接库。所以下面我们来一起搭建mips环境。要注意题目是什么环境,搭建的就得是什么环境。...我们常见的编译都是本地编译:编译出来的程序是由当前平台编译得到的,而且只能放到当前平台下运行;而交叉编译是指在当前平台下编译出在其他平台下运行的程序,即编译出来的程序运行环境与编译它的环境不一样。...直接运行题目会显示缺少共享库,我们可以将共享库复制到根文件夹下的lib文件夹下,也可以使用chroot更改根目录。运行题目。 ?...运行gdbserver,设置好ip端口以及要调试的程序。 ? 在本机使用gdb-mutiarch连接调试。...:mips-binaries-master,但是这个是MSB(大端)的,无法在小端的虚拟机里运行,遇到大端的题目可以使用。
MIPS领域最无法忽视的贡献者是Stanford大学的MIPS项目。...但是,如果程序中显式地使用short或者char类型的数据进行运算,支持MIPS架构的编译器必须额外地插入一些机器指令,保证结果能够像在真正的16位或8位机器上那样正确运行。...它把程序重新运行的地址保存到一个特定寄存器中,修改机器状态,然后禁止中断。做完这些后,跳转到一段保存到低内存中的预定义好的程序,之后的工作完全由软件控制。...硬件上,MIPS架构则是只保存了一个重新运行的地址,而像X86架构,还需要保存eflags、cs、eip、ss和esp等寄存器。所以,MIPS的中断处理更为简单。...但是,对于一个旨在多架构上运行的、允许中断或陷阱(trap)的通用系统,这两个寄存器的值随时会发生变化,最后不要使用它们。
以PC程序计数器和指令中常数之和作为地址,即16位地址左移2位(即乘以4)与PC计数器相加
运行程序,其中terminal窗口如图所示,说明我们的程序成功打印出来Hello World。...(r2) daddi r1,r0,4 lw r2,CONTROL(r0) sw r1,0(r2) jal show halt 使用asm.exe检验所写的程序语法正确性,无语法错误 运行程序
链接克隆需要和原始虚拟机共享同一虚拟磁盘文件,不能脱离原始虚拟机独立运行。但采用共享磁盘文件却大大缩短了创建克隆虚拟机的时间,同时还节省了宝贵的物理磁盘空间。
牛顿 这是向MIPS架构移植软件的问题系列之第二篇。上一篇《MIPS架构深入理解8-向MIPS架构移植软件之大小端问题》中,我们讨论了大小端对于移植代码的影响。...为此,MIPS架构提供了Cache指令,可以根据需要调用它们,消除这种内存和Cache的不一致性。...所以,MIPS32/64提供了synci指令,它可以执行D-Cache的回写操作和I-Cache的失效操作。具体可以参考MIPS指令集参考。...但是,对于运行中的代码,一般不要这样做。而且,不管是使用Cache程序地址,还是使用非Cache程序地址访问物理内存,一定要保证它的一致性。...4 Cache重影和页着色 我们在《MIPS高速缓存机制》一文中已经描述了Cache重影的根源。
mips交叉编译器(gcc 5.2.0),在编译到mpfr时报了个错: /bin/bash ....附上编译mips-gcc-5.2.0的脚本 #!...gcc compiler location mips_gcc=/opt/toolchains/mips-gcc520-glibc222 install_prefix=$sh_folder/release.../opt/toolchains/mipsel-gcc520-gdface old_sysroot=$mips_gcc/mips-linux-gnu/libc target_sysroot=$old_sysroot...\ --with-arch-64=mips64r2 \ --with-float=hard \ --with-mips-plt \ --enable-extra-sgxxlite-multilibs
牛顿 这是向MIPS架构移植软件的问题系列之第三篇。...在前两篇文章 *《MIPS架构深入理解8-向MIPS架构移植软件之大小端问题》 *《MIPS架构深入理解9-向MIPS移植软件之Cache管理》 中,我们分别讨论了大小端模式和Cache对于移植代码的影响...MIPS架构提供了sync指令实现这个目的,它可以确保sync指令之前的访问先于之后的执行。...对于上面的示例,为了让其在合适的系统上可靠地运行,writer任务应该在写关键域的值之前,调用一条sync指令;reader任务应该在读关键域的值之后插入一条sync指令。...比如,一个运行MIPS代码的CPU,实际上运行的store指令大约占所有指令的10%左右;但是,往往是突发式访问,比如函数的调用过程中,首先需要压栈操作一组寄存器的值。
所以,对于MIPS架构来说,完全可以把在其它架构上运行的软件拿来为其所用。 但是,这是一个说简单也简单,说复杂也复杂的工作。为什么这么说呢?...但是,像现在流行的一些实时操作系统,比如、μC/OS、Free-RTOS、RT-Thread或其它一些基于微内核的系统,它们的程序一般不通用,需要修改才能在其它平台上运行。...但是,对于MIPS架构来说,有些事情可能使用汇编语言编写更好。讲解这部分内容的时候,主要涉及inline汇编、内存映射I/O寄存器和MIPS架构可能出现的各种缺陷。...5 在MIPS架构上编写支持任意字节序的软件 你可能会想,我是否可以写一个正确运行在MIPS CPU上的程序,不论它被配置为大端模式,还是小端模式。或者编写一个可以运行在任意配置的板子上的驱动程序。...正是这个特性使得MIPS CPU能够配置大小端工作模式。当你重新配置MIPS CPU的字节序时,正是改变了这个操纵数据加载的硬件逻辑单元的行为。
牛顿 这是向MIPS架构移植软件的问题系列之第四篇。...在前三篇文章 *《MIPS架构深入理解8-向MIPS架构移植软件之大小端问题》 *《MIPS架构深入理解9-向MIPS移植软件之Cache管理》 *《MIPS架构深入理解10-向MIPS移植软件之内存序...比如说,下面的这段代码,调用乘法指令mul,就可以在绝大数的MIPS架构CPU上运行。我们可以注意到,mul指令后面跟着三个源操作数。...3 在MIPS架构上使用C编写程序时的一些其它问题 负指针 当在MIPS架构上运行比较简单的程序时,一般直接运行在非映射内存区,也就是kseg0或kseg1区域时,所有32位数据指针的最高位都置1,看起来像是一个负数...而在其它架构上,运行这种程序一般都在低于2G的内存地址上,也就是直接对应物理地址。所以,MIPS架构的这种负指针,如果对其进行比较运算的话,指针可能会隐式地被转为一个有符号的整数类型。
\n"); } fclose(fp); } 首先分析程序逻辑得出 运行程序后从passwd中读取内容,判断是否为adminpwd 而读取数据的buf只有256大小,但是我们却可以在...最后运行exp,在运行程序溢出反弹shell成功! ?
简介 咱们知道x86架构cpu用于PC端和工作站较多,ARM架构cpu常见于手机和单片机,那么MIPS架构的cpu主要在哪些设备可以找到它们的身影呢?...中国龙芯 PS游戏机 学习环境搭建 安装JDK, 主要用于运行mips模拟器mars MARS模拟器:https://courses.missouristate.edu/KenVollmar/mars/...download.htm 寄存器 在mips中通用寄存器用$开头表示,一共有32个 寄存器编号 寄存器名 寄存器用途 $0 $zero 永远返回0 $1 $at 保留寄存器 $2-$3 $v0-$v1...MIPS汇编中的分段处理 .data #数据段 .text #代码段 传送指令 加载立即数指令 li li(load immediate) :用于将立即数传送给寄存器 li $t0,1 ;十六进制数据使用...$t1,sub # 如果$t0中的数据小于$t1,则跳转到sub分支,执行sub中的代码,否则,按照顺序执行bgt下面的代码, sub是一个代号,可以自定义 sub: 练习1: 将以下c代码转换成mips
Linux+ Python3.6 安装 Mayavi 工具包 一、修改python和pip版本 二、准备python-dev环境 三、安装mayavi 四、验证 一、修改python和pip版本 cd
全国大学生信息安全竞赛的一个题,是MIPSEL(小端的) qemu虚拟机可以在这里下 https://people.debian.org/~aurel32/qemu/mipsel/ 启动: qemu-system-mips64el...这个MIPS实际上是硬件上不支持NX的,所以这里开了也没有用所以可以直接执行shellcode 这个代码一开始还是比较难看的,但是misp应该不会太难 下面这个的输入没有长度限制,应该存在缓冲区溢出 生成...int main(int argc, char const *argv[]) { srand(0x123456); printf("%d\n", rand()); return 0; } 编译运行...─────────────────────────────────────────────────────────────────────────────────────────────[ code:mips
程序分析 首先将qemu-mipsel-static复制到squashfs的根目录,让我们可以正常运行程序 ? 通过IDA的简单分析大致可以得出程序需要添加参数运行,如上图所示 ?...使用下面命令来运行程序到1234端口,并加上python的cyclic函数来生成300个有序的字符 ?...接下来使用gdb-multiarch来连接程序 并在gdb开始时输入 set architecture mips 设置程序的架构为mips set endian little 设置字节序为小端序 target...输入c运行程序可以看到程序直接断到了0x63616162处也就是我们填充的字符串“baac” ? 最后使用cyclic命令可自动计算出溢出位为204,便可以控制程序的pc寄存器 ?...可以控制pc寄存器,便意味至我们可以让其直接运行到程序中的dat_shell函数上并getshell ?
龙芯架构 龙芯指令集: CPU访存指令 24个 全部来自MIPS CPU算数指令(ALU) 10个 全部来自MIPS CPU算数指令 14个 全部来自MIPS CPU乘除指令 12个 来自MIPS...12个 来自龙芯(其中8个重复MIPS指令功能) CPU跳转分支指令20个 全部来自MIPS CPU位移指令 15个 全部来自MIPS CPU特殊指令 2个 全部来自MIPS CPU异常指令...12个 全部来自MIPS CPU CPO指令 10个 全部来自MIPS 龙芯处理器共131个指令,其中119个来自MIPS,12个来自龙芯(但其中MULTG、DMULTG、MULTUG、DMULTUG...、DIVG、DDIVG、DIVUG、DDIVUG共8个重复MIPS的指令功能。)
1998年,MIPS脱离SGI,成为MIPS技术公司;随后,MIPS公司的战略发生变化,把重点放在嵌入式系统;1998年-MIPS科技股票在美国纳斯达克股票交易所公开上市。...1999年,MIPS公司发布MIPS32和MIPS64架构标准,为未来MIPS处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。...MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS324Kc与高性能64位处理器内核MIPS64 5Kc。...2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核。 ...参考推荐: ARM、X86/Atom、MIPS、PowerPC arm powerpc mips dsp ARM and MIPS
所以对MIPS指令有一定研究,而在DDCTF 2018中刚好有一道逆向题目是MIPS程序,于是尝试做了一下。 0x01 环境搭建 由于我们通常的操作系统指令集都是x86的,所以无法跑MIPS程序。...由于MIPS架构有两种——大端MIPS和小端MIPS。所以,我们需要确定这个程序是大端MIPS还是小端MIPS。 ELF 32-bit LSB很明显,这个程序是32位小端的MIPS。...所以,我们使用qemu-mipsel baby_mips来运行这个程序。...因为我们需要远程调试MIPS程序,所以要加上-g 端口参数,qemu-mipsel -g 1234 baby_mips,此时用IDA pro就可以通过Remote GDB Server来调试这个MIPS...然后,为了方便我们了解key比对函数的功能,我们可以需要对MIPS进行反编译,目前可以反编译MIPS程序的工具有两个。
领取专属 10元无门槛券
手把手带您无忧上云