1.MIPS环境填坑指南
2.编译BOOT.EFI总结
3.我们在国产龙芯电脑上移植了hustoj
4.å¦ä½ç¼è¯ä¸ä¸ªç²¾ç®çAndroidç³»ç»
5.dmips要怎么算?比如MT6592和Mips怎么算?
MIPS环境填坑指南
搭建MIPS环境指南
0x前言:
随着IoT安全的免费热门,年的源码《QEMU搭建树莓派环境》文章为研究ARM平台下的漏洞分析、挖掘及熟悉ARM指令提供了基础。开源合天网安实验室也开设了《ARM汇编教程》和《ARM漏洞利用技术》课程。免费MIPS架构在路由器领域占据主导地位,源码本文旨在构建一个软件层面分析路由器安全的开源必买票源码环境。
本文所述工具与搭建方法在年2月日可完全复现,免费适用于ubuntu.系统,源码对MIPS架构和路由器固件安全感兴趣的开源专家可尝试搭建此环境,为后续深入分析做准备。免费
本文标题源于网上许多环境搭建资料过时或存在未提及的源码坑,本文将详细说明搭建过程中可能遇到的开源坑点及解决方法,确保读者能顺利复现环境。免费
0x安装binwalk
使用`apt-get install binwalk`安装。源码
若遇到如squashfs的开源文件识别和提取问题,需要安装`sasquatch`工具。空冥诀源码通过执行以下命令安装:
`sudo apt-get install sasquatch`
安装后,binwalk能够正确识别并提取固件文件系统。
0x安装buildroot
安装前确保安装必要的库文件,使用`apt-get install`命令安装所需库。
使用`git clone`命令下载buildroot源代码,然后进入目录并配置编译选项。
在编译配置界面,设置目标选项和工具链,选择适合的Linux headers版本。
编译完成后,系统将生成MIPS交叉编译工具,设置环境变量并测试编译。
0x安装QEMU
使用之前文章中的方法安装QEMU。
配置网络,修改`/etc/network/interfaces`文件和QEMU启动脚本。网络u盘 源码
下载目标内核文件和磁盘镜像,启动QEMU环境。
通过终端操作,确保网络连接,并SSH至QEMU环境。
注意QEMU有两种运行模式:system mode和user mode,根据需求选择合适的模式。
0x安装wine
使用`apt-get install wine`命令安装。
0x安装IDAPro
复制IDAPro文件至本地,安装所需插件并确保程序正常启动。
0x配置gdb
使用`sudo apt install gdb-multiarch`命令安装gdb。
调试示例程序,设置MIPS架构和连接参数。
0x安装firmadyne(替代方案:attifyos)
firmadyne是一款用于自动化分析嵌入式Linux系统安全的开源软件,搭建过程较为复杂。网站保姆-源码下载替代方案attifyos则基于ubuntu.开发,提供了一键安装和使用体验。
总结:本文详细介绍了MIPS环境搭建的步骤,覆盖了工具安装、配置和测试等关键环节。读者可根据自身需求选择合适的工具进行分析,同时注意结合Ghidra和JEB等其他工具的使用,以实现更全面的安全研究。在使用过程中,遵循网络安全准则,自行承担相关行为的法律后果。
编译BOOT.EFI总结
编译loongnix1.0系统中的BOOTMIPS.EFI指南
一、解压源码包
二、应用压缩包中的补丁到源代码中
三、运行配置脚本
四、翎风引擎源码开始编译过程
五、安装编译工具
六、生成启动镜像BOOT.EFI
UEFI启动主要通过 /boot/EFI/BOOT/xxxx.EFI 来启动grub引导。而BOOTMIPS.EFI后跟的命令模块可以根据个人需求进行自定义添加。
七、将文件复制到指定位置
重启后,即可利用新编译的BOOTMIPS.EFI引导启动内核。
若欲获取更多相关信息,可关注公众号。
我们在国产龙芯电脑上移植了hustoj
在国产龙芯电脑上移植hustoj的历程充满了挑战与创新。事情源于一次实习任务,目标是将hustoj移植到基于龙芯计算机的mips指令集上。由于mips与x指令集在寄存器结构上存在根本差异,原有的judge_client源码无法直接编译。首先,我们在docker环境内的qemu-system-mips进行了初步测试。
为了克服编译问题,我们在master分支整合了位、位、arm和mips源码,并通过宏做简单的编译预处理。然而,为确保移植的准确性与可靠性,我们决定采用更为直接的方法,通过购买龙芯2f一体机-灵珑9s2a进行实际测试。在此过程中,@蓬岸 Dr.Quest 为我们提供了 debian 官方的存档源,使得后续的操作更加顺畅。
安装软件包、调试过程中发现实机与qemu在系统调用方面存在差异,经过调整okcalls_mips.h后,最终通过http方式成功完成判题。整个过程充满摸索与尝试,但最终实现了hustoj在龙芯电脑上的稳定运行。
在体验过程中,虽然龙芯2f一体机的性能相对较弱,但这并未成为移植的主要障碍。hustoj支持CPU系数调整,调整为0.1即可平衡性能与稳定性。此外,通过降低数据要求,也能有效应对性能较低的挑战。这次移植之旅不仅加深了我们对国产CPU的信心,也让我们对国产CPU生态的未来发展充满期待。
我们计划继续在该设备上进行研究,升级到更高版本的debian系统。同时,这批机器在咸鱼上仍可供有兴趣的朋友尝试。另外,该一体机已赠予@蓬岸 Dr.Quest 研究,经他打磨后,现已捐赠给中关村创业博物馆,作为国产科技发展的见证。
å¦ä½ç¼è¯ä¸ä¸ªç²¾ç®çAndroidç³»ç»
æ¬æ¬¡è¯éªä½¿ç¨çandroidæºç æ¯4.2ï¼ç¼è¯çæ¶ææ¯mini-mipsã
ä¸ãæåçå·¥ä½
1ãä¿®æ¹build/target/product/mini.mkï¼å»æä¸äºä¸å¿ è¦ç模åï¼ä¾å¦PhoneãDownloadManagerçï¼
2ãä¿®æ¹SystemServer.javaï¼å±è½ä¸äºserviceï¼è®©ç³»ç»è½å¤å¯å¨èµ·æ¥ï¼ä¾å¦ï¼Location ManagerãTelephony Registryï¼
3ãä¿®æ¹dalvik/vm/native/dalvik_system_Zygote.cppï¼æ³¨éæå 为æ£æ¥ä¸å°å¤é¨åå¨è导è´dalvik abortçå°æ¹ ï¼è¿æ¯googelçä¸ä¸ªbugï¼å¨å¹´1æ份已解å³ï¼å¦æç¨è¿ä»¥åç代ç ä¸ç¨ä¿®æ¹æ¤å¤ï¼
4ãä¿®æ¹WindowManagerService.javaï¼æåéBOOT_TIMEOUTæ¶æ¯çæ¶é´æ¹ä¸º0ï¼ä¹å为ç§ï¼
äºãç³»ç»ä¼ååçææï¼éªè¯å·¥ä½åå¨mips模æå¨ä¸è¿è¡ï¼
1ãèçè¿è¡å åï¼ä¸é¢æ¯å ¨ç¼è¯ä¸miniç¼è¯çå å使ç¨ç¶æç对æ¯
1ï¼full build
MemTotal: kB
MemFree: kB
2ï¼mini build
MemTotal: kB
MemFree: kB
2ã缩çå¼æºå¯å¨æ¶é´
å¨èææºä¸çå¯å¨æ¶é´
1ï¼full buildï¼ç§
2ï¼mini buildï¼ç§
3ãåªå¯å¨homeç¨åºï¼å ¶ä½çåºç¨ç¨åºå被移é¤
ä¸ãä¿çandroidçå¼åç¯å¢
1ãadbï¼ddmsï¼apkinstallçï¼é½è½æ£å¸¸å·¥ä½
2ãå¨eclipseä¸ç¼åçandroidåºç¨ç¨åºè½å¤è¿è¡å¨è¯¥mini-androidä¹ä¸
åãå¼æºèªå¨å¯å¨æå®åºç¨ç¨åº
æ¬æ¬¡æµè¯ä½¿ç¨Gallery.apkåºç¨ç¨åºï¼ä¿®æ¹å ¶æºç åå¯ä»¥å®ç°éç³»ç»çå¯å¨èèªå¨å¯å¨çåè½ã
dmips要怎么算?比如MT和Mips怎么算?
dmips是一种衡量处理器性能的标准,通过运行dhrystone指令来计算每秒执行的百万指令数。它以VAX-/的 Dhrystones/s作为1 DMIPS的基准。然而,dmips并非完美的性能指标,因为它不考虑工艺制程、缓存影响,仅反映整数运算能力,不包括浮点运算性能。 计算dmips有多种方法,一是通过运行dhrystone源码,可以在ARM官网找到相应的dhry.h、dhry_1.c和dhry_2.c文件。另一种是使用架构的平均理论IPC(每秒指令数),如Cortex-A7的MT,其理论最大DMIPS值为1.9乘以频率(1.7GHz)和核心数(8核),而Cortex-A的骁龙则为2.3。这些数值主要用于快速对比不同设备的性能,但实际性能受诸多因素影响,需要适当修正。 例如,MT的dmips估算约为,单线程,而骁龙则为,单线程。在实际评估时,要考虑核心利用率和异步核心的影响,如大小核的计算比例。总的来说,dmips是一个便捷的性能参考指标,但需要结合其他测试结果来获得更准确的性能评估。