分类: 2009-07-27 11:17 574人阅读 (0)// chunked01.cpp : Defines the entry point for the console application.
///**************************************************** Revision Log Entry* Copyright (C) 2005 YAPCOM Corporation.** All Rights Reserved.* File Name : chunked01.cpp* Version : 1.0.0* Author : Yap* Comments : 解密chunked格式的内容** History: * Date Modify By Comments* 2007-7-29 0:27:56 Yap Create...**************************************************/#include "stdafx.h"#include <stdlib.h>#include <string.h>//decode && encrypt/*************************************************** Function Name : prechunk* File Name : chunked01.cpp* Return Type : bool * Argument : char * str* Description : 解密主函数,原理 首先出现真正内容的个数,然后回车换行(CRLF),接下来是主要内容现实完规定的个数之后,就又是回车换行(CRLF)。以上就是一个块,块的格式如下正文个数CRLF正文CRLF如果文件到结束,会出现0正文个数显示如下:0CRLFCRLF//自此文件结束* Created By : Yap** History : * Date Modified By Comment* 2007-7-29 0:28:14 Yap Create...*************************************************/char * prechunk(char * str){ //char * str="1a/r/n1234567890dfdfddfweiiouury/r/n1e/r/ndfdfssddffsddffffffdssssssdfex/r/n1d/r/ndfdfssddffsddffffffdssssssdfe/r/n0/r/n/r/n"; char str1[10],*str2; int len = 0,pos = 0,count = 0; sscanf(str, "%x", &len); sscanf(str, "%s", str1); pos+=strlen(str1); pos+=2; str2= (char *)malloc(len+1); memset(str2,0,len+1); strncpy(str2,str+pos,len); count = len; while(1) { pos+=len; pos+=2; sscanf(str+pos, "%x", &len); sscanf(str+pos, "%s", str1); if (len == 0) break; count +=len; pos+=strlen(str1); pos+=2; str2 = (char *)realloc(str2,count+1); strncat(str2,str+pos,len); } strset(str,0); strcpy(str,str2); free (str2); return str;}int main(int argc, char* argv[]){ char * str="1a/r/n1234567890dfdfddfweiiouury/r/n1e/r/ndfdfssddffsddffffffdssssssdfex/r/n1d/r/ndfdfssddffsddffffffdssssssdfe/r/n0/r/n/r/n"; char *str1=(char*)malloc(strlen(str)+1); strcpy(str1,str); prechunk(str1); printf("%s/n",str); printf("%s/n",str1);}
posted on 2013-04-02 19:42 阅读( ...) 评论( ...) 收藏