首页
游戏
影视
直播
广播
听书
音乐
图片
更多
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
Search
1
virtuoso和empyrean alps模拟仿真和混仿教程
360 阅读
2
在IC617中进行xa+vcs数模混仿
301 阅读
3
文档内容搜索哪家强? 15款文件搜索软件横向评测
264 阅读
4
科普:Memory Compiler生成的Register file和SRAM有何区别?
258 阅读
5
通俗易懂的AI知识体系图及其产业链全景图
198 阅读
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
登录
Search
标签搜索
AI
python
Docker
vcs
PyQT
STM32
cadence
linux
systemverilog
EDA
Alist
vscode
uos
package
MCU
C
QT
CXL
sed
sv
bennyhe
累计撰写
387
篇文章
累计收到
33
条评论
首页
栏目
默认分类
芯片市场
数字电路
芯片后端
模拟电路
芯片验证
原型与样片验证
算法与架构
DFX与量产封装
PC&Server OS设置
移动OS设置
软件方案
新浪备份
有道备份
页面
游戏
影视
直播
广播
听书
音乐
图片
看书
微视
主播
统计
友链
留言
关于
论坛
邮件
推荐
我的云盘
我的搜索
我的记录
我的图片
我的图书
我的笔记
我的音乐
我的影视
我的邮件
我的游戏
搜索到
387
篇与
的结果
2025-07-14
the problem of Grub (2008-06-09 09:25:42
一、Grub Error 出现症状:Code:root (hd0,0) filesystem type unknown partition type 0x7 Error 17 : Cannot mount selected partition[Ctrl+A Select All]解决方法: 中文意思为无法挂载分区, 也就是Grub可以确认所使用的分区存在但是该分区上使用的文件系统无法被Grub识别.确认一下再grub.conf中的root(x,y)设置是否正确.如果在选择启动Windows时出现上述错误, 请检查一下grub.conf关于Win的配置中是否有 root (hdX,Y) (或 rootnoverify (hdX,Y)) 和 chainloader (hdX,Y)+1.二、Grub error:Cannot mount selected partition启动错误的解决下午在window下用pqmagic把移动硬盘重新分区后,重启选择进入ubuntu的时候出现启动错误:Grub Error17:Cannot mount selected partition......上网查询发现,对双系统,在window下pq调整分区大小很容易产生分区表重改等莫名其妙的问题。上述错误就是分区表被改写,原有的linux boot分区号发生变化,因此grub引导错误。解决办法有很多:1.最快最简单的在启动菜单选择unbuntu后,不要回车进入,按e进入编辑grub模式。修改root(hd0,y)的y值(hd0表第一块硬盘,y表硬盘分区号)。如:将原有的root(hd0,7)改为(hd0,8)。然后安b重启,如果能进入系统则表示正确,如果同样报错,那么重复上述步骤修改(hd0,y)为别的值,试几次就能成功了。成功登录linux后还要修改menu.lst达到一劳永逸的效果。打开终端:sudo vi /boot/grub/menu.lst如将root(hd0,7)修改为正确的值(hd0,y),同时将kernel行的root=/dev/sda8也修改为正确数值y+1(sda8对应hd0,7)。例子如下:title Ubuntu, kernel 2.6.17-10-genericroot (hd0,8)kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda9 ro quiet splash locale=zh_CNinitrd /boot/initrd.img-2.6.17-10-genericquietsavedefaultboot2.如果手头有livecd(ubuntu的destop cd),可以通过livecd启动linux,然后修改grub配置和menu.lst。$sudo grub 进入grub find /boot/grub/stage1 提示正确的boot位置,如(hd0,8)root (hdX,Y)setup (hdX)quit注意:其中的X、Y是执行find /boot/grub/stage1命令后系统提示的。或者执行$sudo fdisk -l根据各个分区显示信息判断正确的boot分区号。然后修改menu.lst,首先得将boot分区mount上。如:$sudo mount /dev/sda9 /media$cd /media$sudo vi boot/grub/menu.lst 修改之。重启ok。3.假如boot下面的东西都损坏了,那还得麻烦点:$sudo grep -v rootfs /proc/mounts >sudo tee /etc/mtab 生成/etc/mtab$grub-install --no-floppy /dev/hda 安装grub到mbr 然后建立menu.lst三、删除grub引导Dos下输入:fdisk/mbr四、恢复grub引导重装windows后,grub没有了这是很多人都会碰到的问题这里试图用各种不同的方法解决有redhat的安装或恢复光盘 用光盘启动,输入linux rescue,回车 光盘将自动引导、搜索并挂载ext3分区 挂载好,进入shell后,执行chroot /mnt/sysimage cd /sbin ./grub-install /dev/hda 注意(/dev/hda是你要安装grub的硬盘,请自己修改)重启 五、使用grub启动系统如果你能启动到dos,并且安装有windows系统,那么可以启动到dos,format /mbr然后进windows下载grub for dos,如果可以的话,最好下载explorer2fs,这样执行恢复操作比较方便可以到这里下载grub for doshttp://newdos.yginfo.net/grubdos.htm启动机器进windows,运行explorer2fs,把你linux所在分区里的/boot/grub/menu.lst拷贝出来,并且覆盖掉grub for dos中的那个重启机子,进入dos,执行grub 应该可以看见菜单了,选择进入 cd /sbin ./grub-install /dev/hda 注意(/dev/hda是你要安装grub的硬盘,请自己修改) 还是使用grub引导系统 如果你只有一个linux,但是你碰巧能够启动grub的话,那么也可以解决问题启动进grub的命令行,会看到grub> 输入root (hd0,3)注意(hd0,3)表示第一个硬盘的第4个分区(很多东西都是从0开始的),可以对照个人情况做相应的修改输入 kernel (hd0,3)/boot/vmlinuz-2.6.9-ext3-686 注意,如果你不清楚你的内核镜像叫什么名字,也没有关系,当你输入kernel (hd0,3)/boot/后,按几下tab就可以看见了,如果你需要一个initrd来引导系统的话(大部分都要这东西),那么你需要在这一行后加上如 root=/dev/hda4这一参数,hda表示你的第一个硬盘,4表示是你的第四个分区,这里是从1开始计算的 如kernel (hd0,3)/boot/vmlinuz-2.6.9-ext3-686 root=/dev/hda4 输入initrd (hd0,3)/boot/initrd.img-2.6.9-ext3-686 注意按自己的实际情况修改,如果你不清楚的话,可以按tab 最后输入boot引导系统 接下来的事情参照上边部分 防患于未然,为以后做准备 做个可以引导进linux的救援盘如果你有软驱的话,那么,一个简单的方法就是将grub装在软盘上。只要这样 ./grub-install /dev/fd0但是,软盘是很不可靠的,你需要多备份几张,而且过段时间要重写一下。好在这个并不浪费空间。为了可靠起见,可以下载并刻录一张livecd,这样以后就可以方便的进行修复工作了
2025年07月14日
20 阅读
0 评论
0 点赞
2025-07-14
MD5校验值program(4) (2008-06-09 09:24:01)
void CSecurity::MD5_memset( POINTER output, int value, size_t len ) { size_t i; for (i = 0; i < len; i++) ((char *)output) = (char)value; } void CSecurity::MD5( const char string ,char lpMD5StringBuffer ) { MD5_CTX context; unsigned char digest[16]; static char output[33]={""}; size_t len = strlen (string); int i; MD5Init( &context); MD5Update( &context, (unsigned char*)string, len ); MD5Final( digest, &context ); for (i = 0; i < 16; i++) { sprintf(&(lpMD5StringBuffer[2*i]),"%02x",(unsigned char)digest); sprintf(&(lpMD5StringBuffer[2*i+1]),"%02x",(unsigned char)(digest<<4)); } for(i=0;i<32;i++) { output=lpMD5StringBuffer; } } void CSecurity::StringAddOne( char * orstring ) { size_t len; size_t i,n; len = strlen(orstring); n = len - 1; for(i = n; i >= 0; i--) { if(orstring=='9') { orstring = 'A'; break; } else if(orstring=='Z') { orstring='a'; break; } else if(orstring=='z') { orstring='0'; continue; } else orstring += 1; break; } } =============================stdafx.h=====================================// stdafx.h : 标准系统包含文件的包含文件,// 或是常用但不常更改的项目特定的包含文件//pragma once//导出define SECURITY_EXPORTSdefine WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料// Windows 头文件:include// TODO: 在此处引用程序要求的附加头文件============================stdafx.cpp========================================// stdafx.cpp : 只包括标准包含文件的源文件// Security.pch 将成为预编译头// stdafx.obj 将包含预编译类型信息include "stdafx.h"// TODO: 在 STDAFX.H 中//引用任何所需的附加头文件,而不是在此文件中引用=====================================================================以上程序使用命令:@cl /GD /LD Security.cpp stdafx.cpp 编译即可分享:
2025年07月14日
19 阅读
0 评论
0 点赞
2025-07-14
MD5校验值program(3) (2008-06-09 09:21:19)
GG (a, b, c, d, x[ 1], S21, 0xf61e2562); GG (d, a, b, c, x[ 6], S22, 0xc040b340); GG (c, d, a, b, x[11], S23, 0x265e5a51); GG (b, c, d, a, x[ 0], S24, 0xe9b6c7aa); GG (a, b, c, d, x[ 5], S21, 0xd62f105d); GG (d, a, b, c, x[10], S22, 0x2441453); GG (c, d, a, b, x[15], S23, 0xd8a1e681); GG (b, c, d, a, x[ 4], S24, 0xe7d3fbc8); GG (a, b, c, d, x[ 9], S21, 0x21e1cde6); GG (d, a, b, c, x[14], S22, 0xc33707d6); GG (c, d, a, b, x[ 3], S23, 0xf4d50d87); GG (b, c, d, a, x[ 8], S24, 0x455a14ed); GG (a, b, c, d, x[13], S21, 0xa9e3e905); GG (d, a, b, c, x[ 2], S22, 0xfcefa3f8); GG (c, d, a, b, x[ 7], S23, 0x676f02d9); GG (b, c, d, a, x[12], S24, 0x8d2a4c8a); HH (a, b, c, d, x[ 5], S31, 0xfffa3942); HH (d, a, b, c, x[ 8], S32, 0x8771f681); HH (c, d, a, b, x[11], S33, 0x6d9d6122); HH (b, c, d, a, x[14], S34, 0xfde5380c); HH (a, b, c, d, x[ 1], S31, 0xa4beea44); HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); HH (b, c, d, a, x[10], S34, 0xbebfbc70); HH (a, b, c, d, x[13], S31, 0x289b7ec6); HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); HH (b, c, d, a, x[ 6], S34, 0x4881d05); HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); HH (d, a, b, c, x[12], S32, 0xe6db99e5); HH (c, d, a, b, x[15], S33, 0x1fa27cf8); HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); II (a, b, c, d, x[ 0], S41, 0xf4292244); II (d, a, b, c, x[ 7], S42, 0x432aff97); II (c, d, a, b, x[14], S43, 0xab9423a7); II (b, c, d, a, x[ 5], S44, 0xfc93a039); II (a, b, c, d, x[12], S41, 0x655b59c3); II (d, a, b, c, x[ 3], S42, 0x8f0ccc92); II (c, d, a, b, x[10], S43, 0xffeff47d); II (b, c, d, a, x[ 1], S44, 0x85845dd1); II (a, b, c, d, x[ 8], S41, 0x6fa87e4f); II (d, a, b, c, x[15], S42, 0xfe2ce6e0); II (c, d, a, b, x[ 6], S43, 0xa3014314); II (b, c, d, a, x[13], S44, 0x4e0811a1); II (a, b, c, d, x[ 4], S41, 0xf7537e82); II (d, a, b, c, x[11], S42, 0xbd3af235); II (c, d, a, b, x[ 2], S43, 0x2ad7d2bb); II (b, c, d, a, x[ 9], S44, 0xeb86d391); state[0] += a; state[1] += b; state[2] += c; state[3] += d; MD5_memset ((POINTER)x, 0, sizeof (x)); } void CSecurity::Encode(unsigned char *output, UINT4 *input, size_t len ) { size_t i, j; for (i = 0, j = 0; j < len; i++, j += 4) { output[j] = (unsigned char)(input & 0xff); output[j+1] = (unsigned char)((input >> 8) & 0xff); output[j+2] = (unsigned char)((input >> 16) & 0xff); output[j+3] = (unsigned char)((input >> 24) & 0xff); } } void CSecurity::Decode(UINT4 *output, unsigned char *input, size_t len ) { size_t i, j; for (i = 0, j = 0; j < len; i++, j += 4) output = ((UINT4)input[j]) | (((UINT4)input[j+1]) << 8) | (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); } 分享:
2025年07月14日
20 阅读
0 评论
0 点赞
2025-07-14
MD5校验值program(2) (2008-06-09 09:20:11)
/ 这是已导出类的构造函数。// 有关类定义的信息,请参阅 Security.hCSecurity::CSecurity(){ return; }void CSecurity::MD5Init( MD5_CTX *context ) { context->count[0] = context->count[1] = 0; context->state[0] = 0x67452301; context->state[1] = 0xefcdab89; context->state[2] = 0x98badcfe; context->state[3] = 0x10325476; } void CSecurity::MD5Update(MD5_CTX *context, unsigned char *input, size_t inputLen ) { size_t i, index, partLen; index = (size_t)((context->count[0] >> 3) & 0x3F); if ((context->count[0] += ((UINT4)inputLen << 3)) < ((UINT4)inputLen << 3)) context->count[1]++; context->count[1] += ((UINT4)inputLen >> 29); partLen = 64 - index; if (inputLen >= partLen) { MD5_memcpy ((POINTER)&context->buffer[index], (POINTER)input, partLen); MD5Transform (context->state, context->buffer); for (i = partLen; i + 63 < inputLen; i += 64) MD5Transform (context->state, &input); index = 0; } else i = 0; MD5_memcpy ((POINTER)&context->buffer[index], (POINTER)&input, inputLen-i); } void CSecurity::MD5Final(unsigned char digest[16], MD5_CTX *context ) { unsigned char bits[8]; size_t index, padLen; Encode (bits, context->count, 8); index = (size_t)((context->count[0] >> 3) & 0x3f); padLen = (index < 56) ? (56 - index) : (120 - index); MD5Update (context, PADDING, padLen); MD5Update (context, bits, 8); Encode (digest, context->state, 16); MD5_memset ((POINTER)context, 0, sizeof (*context)); } void CSecurity::MD5Transform(UINT4 state[4], unsigned char block[64] ) { UINT4 a = state[0], b = state[1], c = state[2], d = state[3], x[16]; Decode (x, block, 64); FF (a, b, c, d, x[ 0], S11, 0xd76aa478); FF (d, a, b, c, x[ 1], S12, 0xe8c7b756); FF (c, d, a, b, x[ 2], S13, 0x242070db); FF (b, c, d, a, x[ 3], S14, 0xc1bdceee); FF (a, b, c, d, x[ 4], S11, 0xf57c0faf); FF (d, a, b, c, x[ 5], S12, 0x4787c62a); FF (c, d, a, b, x[ 6], S13, 0xa8304613); FF (b, c, d, a, x[ 7], S14, 0xfd469501); FF (a, b, c, d, x[ 8], S11, 0x698098d8); FF (d, a, b, c, x[ 9], S12, 0x8b44f7af); FF (c, d, a, b, x[10], S13, 0xffff5bb1); FF (b, c, d, a, x[11], S14, 0x895cd7be); FF (a, b, c, d, x[12], S11, 0x6b901122); FF (d, a, b, c, x[13], S12, 0xfd987193); FF (c, d, a, b, x[14], S13, 0xa679438e); FF (b, c, d, a, x[15], S14, 0x49b40821); 分享:
2025年07月14日
11 阅读
0 评论
0 点赞
2025-07-14
MD5校验值program(1) (2008-06-09 09:11:28)
具体的一个MD5实现=============================头文件Security.h===============================================// 下列 ifdef 块是创建使从 DLL 导出更简单的// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 SECURITY_EXPORTS// 符号编译的。在使用此 DLL 的// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将 // SECURITY_API 函数视为是从此 DLL 导入的,而此 DLL 则将用此宏定义的// 符号视为是被导出的。//在使用该类的地方包含本文件即可ifdef SECURITY_EXPORTSdefine SECURITY_API __declspec(dllexport)elsedefine SECURITY_API __declspec(dllimport)endiftypedef unsigned char *POINTER; typedef unsigned short int UINT2; typedef unsigned long int UINT4;define PROTO_LIST(list) listtypedef struct _MD5_CTX { UINT4 state[4]; UINT4 count[2]; unsigned char buffer[64]; } MD5_CTX; static unsigned char PADDING[64]= { 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };define S11 7define S12 12define S13 17define S14 22define S21 5define S22 9define S23 14define S24 20define S31 4define S32 11define S33 16define S34 23define S41 6define S42 10define S43 15define S44 21define F(x, y, z) (((x) & (y)) | ((~x) & (z)))define G(x, y, z) (((x) & (z)) | ((y) & (~z)))define H(x, y, z) ((x) ^ (y) ^ (z))define I(x, y, z) ((y) ^ ((x) | (~z)))define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))define FF(a, b, c, d, x, s, ac) { (a) += F ((b), (c), (d)) + (x) + (UINT4)(ac);(a) = ROTATE_LEFT ((a), (s)); (a) += (b); }define GG(a, b, c, d, x, s, ac) { (a) += G ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }define HH(a, b, c, d, x, s, ac) { (a) += H ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }define II(a, b, c, d, x, s, ac) { (a) += I ((b), (c), (d)) + (x) + (UINT4)(ac); (a) = ROTATE_LEFT ((a), (s)); (a) += (b); }define TEST_BLOCK_LEN 1000define TEST_BLOCK_COUNT 1000// 此类是从 Security.dll 导出的class SECURITY_API CSecurity {public:CSecurity(void);void CSecurity::MD5( const char string ,char lpMD5StringBuffer ) ; private:void MD5Transform PROTO_LIST ((UINT4 [4], unsigned char [64])); void MD5_memcpy PROTO_LIST ((POINTER, POINTER, size_t)); void MD5_memset PROTO_LIST ((POINTER, int, size_t)); void MD5Init PROTO_LIST ((MD5_CTX *)); void MD5Update PROTO_LIST ((MD5_CTX , unsigned char , size_t)); void MD5Final PROTO_LIST ((unsigned char [16], MD5_CTX *)); void MDTimeTrial PROTO_LIST ((void)); void StringAddOne PROTO_LIST ((char *)); void Encode PROTO_LIST ((unsigned char , UINT4 , size_t)); void Decode PROTO_LIST ((UINT4 , unsigned char , size_t)); };===============================Security.cpp====================================================// Security.cpp : 定义 DLL 应用程序的入口点。//include "stdafx.h"includeincludeincludeincludeincludeinclude "Security.h"BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call, LPVOID lpReserved ) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:case DLL_THREAD_ATTACH:case DLL_THREAD_DETACH:case DLL_PROCESS_DETACH:break;}return TRUE;}
2025年07月14日
18 阅读
0 评论
0 点赞
1
...
48
49
50
...
78