免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4868 | 回复: 2
打印 上一主题 下一主题

[FreeBSD] vt开机画面的BMP转换PHP程序 [复制链接]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-21 10:15 |只看该作者 |倒序浏览
vt开机画面,默认是一个简单的FreeBSD,如果要换成自己的,需要自己制作并把相应的十六进制代码写在C语言代码中。
但是vt用的bmp跟常用的windows bmp不一致,直接把windows下的bmp文件的十六进制代码写入是倒着显示的,这还要去掉bmp头部才可以。
经过源代码的分析,写了一个简单的小程序,可以转换为vt需要的16进制模式。
熟悉PHP,反倒把Shell忘的差不多了,所以就写php程序了,修改也简单,不像C要修改还要重新编译:

输入为当前目录下aa.bmp,其实也可以写成参数,懒人就穷凑合了……
  1. <?php

  2. $fp = fopen(dirname(__FILE__). '/aa.bmp', 'rb');
  3. $cont = fread( $fp, 40000 );
  4. fclose( $fp );

  5. $hex_str = str_split( bin2hex( $cont ) , 2 );

  6. $hex_str = array_slice( $hex_str, 62, 38400 );
  7. var_dump( count( $hex_str ));

  8. $tmp = '';
  9. $out = array();
  10. foreach( $hex_str as $i=>$v ){
  11.         $m = $i % 80;

  12.         // is the end line
  13.         if( $m < 1 ){
  14.                $tmp .= "\n";
  15.                $out[] = $tmp;
  16.                $tmp = '';
  17.         }

  18.         $tmp .= '0x' . $v . ',';

  19. }


  20. $out = array_reverse( $out );
  21. foreach ( $out as $v ) echo $v ;

  22. echo "\n";

  23. ?>
复制代码

论坛徽章:
0
2 [报告]
发表于 2015-12-22 21:06 |只看该作者
"vt开机画面"是什么
这是有趣的,可以请你分享更多的信息?

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
3 [报告]
发表于 2015-12-22 21:36 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP