当前位置: 首页>>代码示例>>C++>>正文


C++ FLIPENDIAN函数代码示例

本文整理汇总了C++中FLIPENDIAN函数的典型用法代码示例。如果您正苦于以下问题:C++ FLIPENDIAN函数的具体用法?C++ FLIPENDIAN怎么用?C++ FLIPENDIAN使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了FLIPENDIAN函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: attrKeyWrite

static int attrKeyWrite(off_t offset, BTKey* toWrite, io_func* io) {
	HFSPlusAttrKey* key;
	uint16_t keyLength;
	uint16_t nodeNameLength;
	int i;

	keyLength = toWrite->keyLength;
	key = (HFSPlusAttrKey*) malloc(keyLength);
	memcpy(key, toWrite, keyLength);

	nodeNameLength = key->name.length;

	FLIPENDIAN(key->keyLength);
	FLIPENDIAN(key->fileID);
	FLIPENDIAN(key->startBlock);
	FLIPENDIAN(key->name.length);

	for(i = 0; i < nodeNameLength; i++) {
		FLIPENDIAN(key->name.unicode[i]);
	}

	if(!WRITE(io, offset, keyLength, key))
		return FALSE;

	free(key);

	return TRUE;
}
开发者ID:114577922,项目名称:xpwn,代码行数:28,代码来源:xattr.c

示例2: attrKeyRead

static BTKey* attrKeyRead(off_t offset, io_func* io) {
	int i;
	HFSPlusAttrKey* key;

	key = (HFSPlusAttrKey*) malloc(sizeof(HFSPlusAttrKey));

	if(!READ(io, offset, UNICODE_START, key))
		return NULL;

	FLIPENDIAN(key->keyLength);
	FLIPENDIAN(key->fileID);
	FLIPENDIAN(key->startBlock);
	FLIPENDIAN(key->name.length);
	
	if(key->name.length > 254)
	{
		printf("Invalid xattr key at offset %x\n", offset);
		free(key);
		return NULL;
	}

	if(!READ(io, offset + UNICODE_START, key->name.length * sizeof(uint16_t), ((unsigned char *)key) + UNICODE_START))
		return NULL;

	for(i = 0; i < key->name.length; i++) {
		FLIPENDIAN(key->name.unicode[i]);
	}

	return (BTKey*)key;
}
开发者ID:0bj3ct1veC,项目名称:iphone-dataprotection,代码行数:30,代码来源:xattr.c

示例3: decrypt_key

uint8* decrypt_key(const char* filesystem, uint8* passphrase) {
  int i = 0;
  EVP_CIPHER_CTX ctx;
  uint8 data[0x30];
  int outlen, tmplen = 0;
  
  FILE* fd = fopen(filesystem, "rb");
  if (fd == NULL) {
    fprintf(stderr, "error opening file: %s", filesystem);
    return NULL;
  }
  
  uint8* buffer = (uint8*) malloc(BUF_SIZE);
  if(buffer == NULL) {
  	fprintf(stderr, "unable to allocate memory\n");
  	fclose(fd);
  	return NULL;
  }
  
  fread(buffer, 1, sizeof(encrcdsa_header), fd);
  
  uint32 blocks = 0;
  fread(&blocks, 1, sizeof(uint32), fd);
  FLIPENDIAN(blocks);
  
  fread(buffer, 1, sizeof(encrcdsa_block) * blocks, fd);
  fread(buffer, 1, 0x80, fd);
  
  uint32 skip = 0;
  fread(&skip, 1, sizeof(uint32), fd);
  FLIPENDIAN(skip);
  fread(buffer, 1, skip-3, fd);
		
  uint8* out = malloc(0x30);
  free(buffer);

  for (i = 0; i < 0x20; i++) {
    if (fread(data, 1, 0x30, fd) <= 0) {
      fprintf(stderr, "Error reading filesystem image");
      free(out);
      return NULL;
    }
    
    if(data[0] == 0) break;

    EVP_CIPHER_CTX_init(&ctx);
    EVP_DecryptInit_ex(&ctx, EVP_des_ede3_cbc(), NULL, passphrase,
        &passphrase[24]);

    EVP_DecryptUpdate(&ctx, out, &outlen, data, 0x30);
    if (EVP_DecryptFinal_ex(&ctx, out + outlen, &tmplen)) {
      return out;
    }
    
    fseek(fd, 0x238, SEEK_CUR);
  }

  fclose(fd);
  return out;
}
开发者ID:At0mx,项目名称:genpass,代码行数:60,代码来源:genpass.c

示例4: flipCompHeader

void flipCompHeader(CompHeader* header) {
    FLIPENDIAN(header->signature);
    FLIPENDIAN(header->compression_type);
    FLIPENDIAN(header->checksum);
    FLIPENDIAN(header->length_uncompressed);
    FLIPENDIAN(header->length_compressed);
}
开发者ID:nlog2n,项目名称:xpwntool-lite,代码行数:7,代码来源:lzssfile.c

示例5: catalogKeyWrite

static int catalogKeyWrite(off_t offset, BTKey* toWrite, io_func* io) {
  HFSPlusCatalogKey* key;
  uint16_t i;
  uint16_t keyLength;
  uint16_t nodeNameLength;
  
  keyLength = toWrite->keyLength + sizeof(uint16_t);
  key = (HFSPlusCatalogKey*) malloc(keyLength);
  memcpy(key, toWrite, keyLength);
  
  nodeNameLength = key->nodeName.length;
  
  FLIPENDIAN(key->keyLength);
  FLIPENDIAN(key->parentID);
  FLIPENDIAN(key->nodeName.length);
  
  for(i = 0; i < nodeNameLength; i++) {
	if(key->nodeName.unicode[i] == ':') /* ugly hack that iPhone seems to do */
		key->nodeName.unicode[i] = '/';

    FLIPENDIAN(key->nodeName.unicode[i]);
  }
 
  if(!WRITE(io, offset, keyLength, key))
    return FALSE;
  
  free(key);
    
  return TRUE;
}
开发者ID:mucit,项目名称:opensn0w,代码行数:30,代码来源:catalog.c

示例6: flipForkData

void flipForkData(HFSPlusForkData* forkData) {
	FLIPENDIAN(forkData->logicalSize);
	FLIPENDIAN(forkData->clumpSize);
	FLIPENDIAN(forkData->totalBlocks);

	flipExtentRecord(&forkData->extents);
}
开发者ID:Anon0,项目名称:openiBoot,代码行数:7,代码来源:volume.c

示例7: flipCSumResource

static void flipCSumResource(unsigned char* data, char out) {
  CSumResource* cSum;
  
  cSum = (CSumResource*) data;
  
  FLIPENDIAN(cSum->version);
  FLIPENDIAN(cSum->type);
  FLIPENDIAN(cSum->checksum);
}
开发者ID:GEBIT,项目名称:libdmg-hfsplus,代码行数:9,代码来源:resources.c

示例8: flipHFSPlusCmpfEnd

void flipHFSPlusCmpfEnd(HFSPlusCmpfEnd* data) {
	FLIPENDIAN(data->unk1);
	FLIPENDIAN(data->unk2);
	FLIPENDIAN(data->unk3);
	FLIPENDIAN(data->magic);
	FLIPENDIAN(data->flags);
	FLIPENDIANLE(data->size);
	FLIPENDIANLE(data->unk4);
}
开发者ID:0bj3ct1veC,项目名称:xpwn,代码行数:9,代码来源:hfscompress.c

示例9: extentKeyRead

static BTKey* extentKeyRead(off_t offset, io_func* io) {
    HFSPlusExtentKey* key;

    key = (HFSPlusExtentKey*) malloc(sizeof(HFSPlusExtentKey));

    if(!READ(io, offset, sizeof(HFSPlusExtentKey), key))
        return NULL;

    FLIPENDIAN(key->keyLength);
    FLIPENDIAN(key->forkType);
    FLIPENDIAN(key->fileID);
    FLIPENDIAN(key->startBlock);

    return (BTKey*)key;
}
开发者ID:zebbra2014,项目名称:openiBoot,代码行数:15,代码来源:extents.c

示例10: cacheChunk

static void cacheChunk(FileVaultInfo* info, uint32_t chunk) {
	unsigned char buffer[info->blockSize];
	unsigned char msgDigest[FILEVAULT_MSGDGST_LENGTH];
	uint32_t msgDigestLen;

	if(chunk == info->curChunk) {
		return;
	}

	if(info->dirty) {
		writeChunk(info);
	}

	info->file->seek(info->file, chunk * info->blockSize + info->dataOffset);
	info->file->read(info->file, buffer, info->blockSize);

	info->curChunk = chunk;

	FLIPENDIAN(chunk);
	HMAC_Init_ex(&(info->hmacCTX), NULL, 0, NULL, NULL);
	HMAC_Update(&(info->hmacCTX), (unsigned char *) &chunk, sizeof(uint32_t));
	HMAC_Final(&(info->hmacCTX), msgDigest, &msgDigestLen);

	AES_cbc_encrypt(buffer, info->chunk, info->blockSize, &(info->aesKey), msgDigest, AES_DECRYPT);
}
开发者ID:Accusedbold,项目名称:shoes,代码行数:25,代码来源:filevault.c

示例11: duplicateAbstractFile

AbstractFile* duplicateAbstractFile(AbstractFile* file, AbstractFile* backing) {
	uint32_t signatureBE;
	uint32_t signatureLE;
	AbstractFile* orig;

	if (!backing) { /* imagine that: createAbstractFileFromComp() fails, because of decompress_lzss() */
		return NULL;
	}
	
	file->seek(file, 0);
	file->read(file, &signatureBE, sizeof(signatureBE));
	signatureLE = signatureBE;
	FLIPENDIAN(signatureBE);
	FLIPENDIANLE(signatureLE);
	file->seek(file, 0);
	
	if(signatureLE == IMG2_SIGNATURE) {
		orig = createAbstractFileFromImg2(file);
		return duplicateAbstractFile(orig, duplicateImg2File(orig, backing));
	} else if(signatureLE == IMG3_SIGNATURE) {
		orig = createAbstractFileFromImg3(file);
		return duplicateAbstractFile(orig, duplicateImg3File(orig, backing));
	} else if(signatureBE == COMP_SIGNATURE) {
		orig = createAbstractFileFromComp(file);
		return duplicateAbstractFile(orig, duplicateCompFile(orig, backing));
	} else {
		file->close(file);
		return backing;
	}
}
开发者ID:nlog2n,项目名称:xpwntool-lite,代码行数:30,代码来源:nor_files.c

示例12: sizeof

AbstractFile *openAbstractFile(AbstractFile * file)
{
	uint32_t signatureBE;
	uint32_t signatureLE;

	if (!file)
		return NULL;

	file->seek(file, 0);
	file->read(file, &signatureBE, sizeof(signatureBE));
	signatureLE = signatureBE;
	FLIPENDIAN(signatureBE);
	FLIPENDIANLE(signatureLE);
	file->seek(file, 0);
	if (signatureBE == SIGNATURE_8900) {
		return openAbstractFile(createAbstractFileFrom8900(file));
	} else if (signatureLE == IMG2_SIGNATURE) {
		return openAbstractFile(createAbstractFileFromImg2(file));
	} else if (signatureLE == IMG3_SIGNATURE) {
		return openAbstractFile(createAbstractFileFromImg3(file));
	} else if (signatureBE == COMP_SIGNATURE) {
		return openAbstractFile(createAbstractFileFromComp(file));
	} else {
		return file;
	}
}
开发者ID:123457890b,项目名称:opensn0w,代码行数:26,代码来源:nor_files.c

示例13: flipUDIFChecksum

void flipUDIFChecksum(UDIFChecksum* o, char out) {
  int i;

  FLIPENDIAN(o->type);
  
  if(out) {
    for(i = 0; i < o->size; i++) {
      FLIPENDIAN(o->data[i]);
    }
    FLIPENDIAN(o->size);
  } else {
    FLIPENDIAN(o->size);
    for(i = 0; i < o->size; i++) {
      FLIPENDIAN(o->data[i]);
    }
  }
}
开发者ID:1butler1,项目名称:xpwn,代码行数:17,代码来源:udif.c

示例14: extentKeyWrite

static int extentKeyWrite(off_t offset, BTKey* toWrite, io_func* io) {
    HFSPlusExtentKey* key;

    key = (HFSPlusExtentKey*) malloc(sizeof(HFSPlusExtentKey));

    memcpy(key, toWrite, sizeof(HFSPlusExtentKey));

    FLIPENDIAN(key->keyLength);
    FLIPENDIAN(key->forkType);
    FLIPENDIAN(key->fileID);
    FLIPENDIAN(key->startBlock);

    if(!WRITE(io, offset, sizeof(HFSPlusExtentKey), key))
        return FALSE;

    free(key);

    return TRUE;
}
开发者ID:zebbra2014,项目名称:openiBoot,代码行数:19,代码来源:extents.c

示例15: catalogDataRead

static BTKey* catalogDataRead(off_t offset, io_func* io) {
  int16_t recordType;
  HFSPlusCatalogRecord* record;
  uint16_t nameLength;
  
  if(!READ(io, offset, sizeof(int16_t), &recordType))
    return NULL;
    
  FLIPENDIAN(recordType); fflush(stdout);

  switch(recordType) {
    case kHFSPlusFolderRecord:
      record = (HFSPlusCatalogRecord*) malloc(sizeof(HFSPlusCatalogFolder));
      if(!READ(io, offset, sizeof(HFSPlusCatalogFolder), record))
        return NULL;
      flipCatalogFolder((HFSPlusCatalogFolder*)record);
      break;
      
    case kHFSPlusFileRecord:
      record = (HFSPlusCatalogRecord*) malloc(sizeof(HFSPlusCatalogFile));
      if(!READ(io, offset, sizeof(HFSPlusCatalogFile), record))
        return NULL;
      flipCatalogFile((HFSPlusCatalogFile*)record);
      break;
      
    case kHFSPlusFolderThreadRecord:
    case kHFSPlusFileThreadRecord:
      record = (HFSPlusCatalogRecord*) malloc(sizeof(HFSPlusCatalogThread));
      
      if(!READ(io, offset + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t), sizeof(uint16_t), &nameLength))
        return NULL;

      FLIPENDIAN(nameLength);
      
      if(!READ(io, offset, sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) + sizeof(uint16_t) + (sizeof(uint16_t) * nameLength), record))
        return NULL;
      
      flipCatalogThread((HFSPlusCatalogThread*)record, FALSE);
      break;
  }

  return (BTKey*)record;
}
开发者ID:mucit,项目名称:opensn0w,代码行数:43,代码来源:catalog.c


注:本文中的FLIPENDIAN函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。