Exemplo n.º 1
0
int main (int argc, char *argv[])
{
	unsigned int block_size, ecb_mode;
	unsigned char *decoded_string;

	// Block size detection
	block_size = aes_detect_block_size( (aes_detect_block_size_encrypt) &encrypt);
	printf("Block size used : %d \n", block_size );

	// ECB mode detection
	ecb_mode = aes_ecb_detection_oracle( (aes_encrypt) &encrypt, block_size );
	printf("ECB Encryption mode : %s \n", ecb_mode ? "Yes" : "No" );


	// init resulting text buffer
	size_t secret_padded_len =  get_secret_len(); 
	if (secret_padded_len % block_size)
		secret_padded_len +=  block_size - (secret_padded_len % block_size);

	decoded_string = malloc(sizeof(unsigned char)*(secret_padded_len + 1));
	if (NULL == decoded_string)
		return 0x00;

	plain = malloc(sizeof(unsigned char)*secret_padded_len);
	if (NULL == plain)
		return 0x00;

	memset(plain, 0 , sizeof(unsigned char)*secret_padded_len);
	memset(decoded_string, 0, sizeof(unsigned char)*(secret_padded_len + 1));


	// Decryption
	unsigned int block_idx;
	for (block_idx = 0; block_idx*block_size < get_secret_len(); block_idx++)
		detect_block(decoded_string, block_idx, block_size);
	

	printf("Decoded String : %s \n", decoded_string );

	free(decoded_string);
	free(plain);
	
	return 0x00;
}
Exemplo n.º 2
0
static void scan_journal(FILE *out, journal_superblock_t *jsb, char *buf,
			 int len, uint64_t *blocknum, uint64_t *last_unknown)
{
	char *block;
	char *p;
	enum dump_block_type type;
	journal_header_t *header;

	p = buf;

	while (len) {
		block = p;
		header = (journal_header_t *)block;
		if (header->h_magic == ntohl(JBD2_MAGIC_NUMBER)) {
			if (*last_unknown) {
				dump_jbd_unknown(out, *last_unknown, *blocknum);
				*last_unknown = 0;
			}
			dump_jbd_block(out, jsb, header, *blocknum);
		} else {
			type = detect_block(block);
			if (type == DUMP_BLOCK_UNKNOWN) {
				if (*last_unknown == 0)
					*last_unknown = *blocknum;
			} else {
				if (*last_unknown) {
					dump_jbd_unknown(out, *last_unknown,
							 *blocknum);
					*last_unknown = 0;
				}
				dump_jbd_metadata(out, type, block, *blocknum);
			}
		}
		(*blocknum)++;
		p += gbls.fs->fs_blocksize;
		len -= gbls.fs->fs_blocksize;
	}

	return;
}