![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 13:43 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 我写的一个“解码”程序; |
| 可打印版本 838 / 1 |
| 第1楼 bush | 发表于 2004-06-15 00:00 |
| 银牌会员 发帖 730 积分 2,165 | |
|
我写的一个“解码”程序; 经常会在网页上看到一些类似于%D6%D0%B9%FA 的字符,这是因为向WEB服务器提供非英文字符(如中文)时,都会以十六进制数传输,服务器会把它解码为实际字符(两个字符对应一个中文字符);
而有些网上木马病毒为了掩盖其真实意图也常常使用这种字符串(如前一阵子的about:blank病毒) 我写了一个小程序,输入码字符如:%D6%D0%B9%FA就可以得到真实字符串内容(如中国) #include #include int main(void) { unsigned int i=0,max=30; char* dest; dest=(char*)malloc(max); if(!dest)exit (1); printf("input your code string: " ;while((dest=getchar())=='%' ![]() { if((dest =getchar()) >= 'A' ![]() dest = ((dest & 0xdf) - 'A' + 10;else dest = dest - '0'; if((dest =getchar()) >= 'A' ![]() dest = ((dest & 0xdf) - 'A' + 10;else dest = dest - '0'; dest=dest+dest*16; i++; if(i==max) { max+=max; dest=(char*)realloc(dest,max); if(!dest) exit(1); } } dest='\0'; printf("this decode string is:%s\n",dest); free(dest); return 0; } |
|
| 第2楼 Kinglion | 发表于 2004-06-16 00:00 |
| 铂金会员 发帖 1,924 积分 5,800 来自 金獅電腦軟體工作室 | |
|
谢谢楼主了。支持原创。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |