⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libewf_header_values.c

📁 sleuthit-2.09 一个磁盘的工具集
💻 C
📖 第 1 页 / 共 5 页
字号:
	}	if( date_element_count != 6 )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unsupported amount of date elements in header value.\n" );		libewf_common_free( date_string );		libewf_string_split_values_free( date_elements, date_element_count );		return( NULL );	}	/* Set first value	 */	if( date_format == LIBEWF_DATE_FORMAT_MONTHDAY )	{		if( libewf_date_string_set_month( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set month value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 2;	}	else if( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	{		if( libewf_date_string_set_day_of_month( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set day of the month value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 2;	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		if( libewf_date_string_set_year( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set year value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 4;	}	/* Set first seperator	 */	if( ( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	 || ( date_format == LIBEWF_DATE_FORMAT_MONTHDAY ) )	{		date_string[ date_string_iterator ] = '/';		date_string_iterator++;	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		date_string[ date_string_iterator ] = '-';		date_string_iterator++;	}	/* Set second value	 */	if( date_format == LIBEWF_DATE_FORMAT_MONTHDAY )	{		if( libewf_date_string_set_day_of_month( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set day of the month value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 2;	}	else if( ( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	 || ( date_format == LIBEWF_DATE_FORMAT_ISO8601 ) )	{		if( libewf_date_string_set_month( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set month value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 2;	}	/* Set second seperator	 */	if( ( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	 || ( date_format == LIBEWF_DATE_FORMAT_MONTHDAY ) )	{		date_string[ date_string_iterator ] = '/';		date_string_iterator++;	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		date_string[ date_string_iterator ] = '-';		date_string_iterator++;	}	/* Set third value	 */	if( ( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	 || ( date_format == LIBEWF_DATE_FORMAT_MONTHDAY ) )	{		if( libewf_date_string_set_year( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set year value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 4;	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		if( libewf_date_string_set_day_of_month( &date_string[ date_string_iterator ], date_elements ) == -1 )		{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set day of the month value.\n" );			libewf_common_free( date_string );			libewf_string_split_values_free( date_elements, date_element_count );			return( NULL );		}		date_string_iterator += 2;	}	/* Set third seperator	 */	if( ( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	 || ( date_format == LIBEWF_DATE_FORMAT_MONTHDAY ) )	{		date_string[ date_string_iterator ] = ' ';		date_string_iterator++;	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		date_string[ date_string_iterator ] = 'T';		date_string_iterator++;	}	/* Set fourth value	 */	if( libewf_date_string_set_hours( &date_string[ date_string_iterator ], date_elements ) == -1 )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set hours value.\n" );		libewf_common_free( date_string );		libewf_string_split_values_free( date_elements, date_element_count );		return( NULL );	}	date_string_iterator += 2;	/* Set fourth seperator	 */	date_string[ date_string_iterator ] = ':';	date_string_iterator++;	/* Set fifth value	 */	if( libewf_date_string_set_minutes( &date_string[ date_string_iterator ], date_elements ) == -1 )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set minutes value.\n" );		libewf_common_free( date_string );		libewf_string_split_values_free( date_elements, date_element_count );		return( NULL );	}	date_string_iterator += 2;	/* Set fifth seperator	 */	date_string[ date_string_iterator ] = ':';	date_string_iterator++;	/* Set sixth value	 */	if( libewf_date_string_set_seconds( &date_string[ date_string_iterator ], date_elements ) == -1 )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header_value: unable to set seconds value.\n" );		libewf_common_free( date_string );		libewf_string_split_values_free( date_elements, date_element_count );		return( NULL );	}	date_string_iterator += 2;	date_string[ date_string_iterator ] = (LIBEWF_CHAR) '\0';	libewf_string_split_values_free( date_elements, date_element_count );	return( date_string );}/* Generate date string within a header value * Returns a pointer to the new instance, NULL on error */LIBEWF_CHAR *libewf_generate_date_header_value( time_t timestamp ){	LIBEWF_CHAR *date_string = NULL;	struct tm *time_elements = NULL;	time_elements = libewf_common_localtime( &timestamp );	if( time_elements == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_generate_date_header_value: unable to create time elements.\n" );		return( NULL );	}	date_string = (LIBEWF_CHAR *) libewf_common_alloc( LIBEWF_CHAR_SIZE * 20 );	if( date_string == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_generate_date_header_value: unable to create date string.\n" );		libewf_common_free( time_elements );		return( NULL );	}	if( libewf_string_snprintf( date_string, 20, _S_LIBEWF_CHAR( "%4d %d %d %d %d %d" ),		( time_elements->tm_year + 1900 ), ( time_elements->tm_mon + 1 ), time_elements->tm_mday,		time_elements->tm_hour, time_elements->tm_min, time_elements->tm_sec ) <= -1 )	{		LIBEWF_WARNING_PRINT( "libewf_generate_date_header_value: unable to fill date string.\n" );		libewf_common_free( date_string );		libewf_common_free( time_elements );		return( NULL );	}	/* Make sure the string is terminated correctly	 */	date_string[ 19 ] = (LIBEWF_CHAR) '\0';	libewf_common_free( time_elements );	return( date_string );}/* Convert date string within a header2 value * Returns a pointer to the new instance, NULL on error */LIBEWF_CHAR *libewf_convert_date_header2_value( LIBEWF_CHAR *header_value, uint8_t date_format ){	struct tm *time_elements = NULL;	LIBEWF_CHAR *date_string = NULL;	time_t timestamp         = 0;	if( header_value == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: invalid header value.\n" );		return( NULL );	}	if( ( date_format != LIBEWF_DATE_FORMAT_DAYMONTH )	 && ( date_format != LIBEWF_DATE_FORMAT_MONTHDAY )	 && ( date_format != LIBEWF_DATE_FORMAT_ISO8601 ) )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unsupported date format.\n" );		return( NULL );	}	timestamp     = libewf_string_to_int64( header_value, libewf_string_length( header_value ) );	time_elements = libewf_common_localtime( &timestamp );	if( time_elements == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unable to create time elements.\n" );		return( NULL );	}	date_string = (LIBEWF_CHAR *) libewf_common_alloc( LIBEWF_CHAR_SIZE * 20 );	if( date_string == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unable to create date string.\n" );		libewf_common_free( time_elements );		return( NULL );	}	if( date_format == LIBEWF_DATE_FORMAT_MONTHDAY )	{		if( libewf_string_snprintf( date_string, 20, _S_LIBEWF_CHAR( "%02d/%02d/%04d %02d:%02d:%02d" ),	                ( time_elements->tm_mon + 1 ), time_elements->tm_mday, ( time_elements->tm_year + 1900 ),	                time_elements->tm_hour, time_elements->tm_min, time_elements->tm_sec ) <= -1 )        	{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unable to fill date string.\n" );			libewf_common_free( time_elements );			libewf_common_free( date_string );			return( NULL );		}	}	else if( date_format == LIBEWF_DATE_FORMAT_DAYMONTH )	{		if( libewf_string_snprintf( date_string, 20, _S_LIBEWF_CHAR( "%02d/%02d/%04d %02d:%02d:%02d" ),	                time_elements->tm_mday, ( time_elements->tm_mon + 1 ), ( time_elements->tm_year + 1900 ),	                time_elements->tm_hour, time_elements->tm_min, time_elements->tm_sec ) <= -1 )        	{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unable to fill date string.\n" );			libewf_common_free( time_elements );			libewf_common_free( date_string );			return( NULL );		}	}	else if( date_format == LIBEWF_DATE_FORMAT_ISO8601 )	{		if( libewf_string_snprintf( date_string, 20, _S_LIBEWF_CHAR( "%04d-%02d-%02dT%02d:%02d:%02d" ),	                ( time_elements->tm_year + 1900 ), ( time_elements->tm_mon + 1 ), time_elements->tm_mday,	                time_elements->tm_hour, time_elements->tm_min, time_elements->tm_sec ) <= -1 )        	{			LIBEWF_WARNING_PRINT( "libewf_convert_date_header2_value: unable to fill date string.\n" );			libewf_common_free( time_elements );			libewf_common_free( date_string );			return( NULL );		}	}	libewf_common_free( time_elements );	return( date_string );}/* Generate date string within a header2 value * Returns a pointer to the new instance, NULL on error */LIBEWF_CHAR *libewf_generate_date_header2_value( time_t timestamp ){	LIBEWF_CHAR *date_string = NULL;	date_string = (LIBEWF_CHAR *) libewf_common_alloc( LIBEWF_CHAR_SIZE * 11 );	if( date_string == NULL )	{		LIBEWF_WARNING_PRINT( "libewf_generate_date_header2_value: unable to create date string.\n" );		return( NULL );	}	if( libewf_string_snprintf( date_string, 11, _S_LIBEWF_CHAR( "%" ) _S_LIBEWF_CHAR( PRIu32 ), (uint32_t) timestamp ) <= -1 )	{		LIBEWF_WARNING_PRINT( "libewf_generate_date_header2_value: unable to create date string.\n" );		libewf_common_free( date_string );		return( NULL );	}	/* Make sure the string is terminated correctly	 */	date_string[ 10 ] = (LIBEWF_CHAR) '\0';	return( date_string );}/* Retrieves the header value index number, or -1 on error * The index number will be larger than the amount when the identifier is not present in the header values */int32_t libewf_header_values_get_index( LIBEWF_HEADER_VALUES *header_values, LIBEWF_CHAR *identifier ){	size_t identifier_length = 0;	size_t string_length     = 0;	int32_t iterator         = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -