1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vantler-foremost

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
ole.h 3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Jin Отправлено 05.02.2016 04:21 7015555
#define TRUE 1
#define FALSE 0
#define SPECIAL_BLOCK - 3
#define END_OF_CHAIN - 2
#define UNUSED - 1
#define NO_ENTRY 0
#define STORAGE 1
#define STREAM 2
#define ROOT 5
#define SHORT_BLOCK 3
#define FAT_START 0x4c
#define OUR_BLK_SIZE 512
#define DIRS_PER_BLK 4
#ifndef __CYGWIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#endif
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <ctype.h>
struct OLE_HDR
{
char magic[8]; /*0*/
char clsid[16]; /*8*/
__U16_TYPE uMinorVersion; /*24*/
__U16_TYPE uDllVersion; /*26*/
__U16_TYPE uByteOrder; /*28*/
__U16_TYPE uSectorShift; /*30*/
__U16_TYPE uMiniSectorShift; /*32*/
__U16_TYPE reserved; /*34*/
u_int32_t reserved1; /*36*/
u_int32_t reserved2; /*40*/
u_int32_t num_FAT_blocks; /*44*/
u_int32_t root_start_block; /*48*/
u_int32_t dfsignature; /*52*/
u_int32_t miniSectorCutoff; /*56*/
u_int32_t dir_flag; /*60 first sec in the mini fat chain*/
u_int32_t csectMiniFat; /*64 number of sectors in the minifat */
u_int32_t FAT_next_block; /*68*/
u_int32_t num_extra_FAT_blocks; /*72*/
/* FAT block list starts here !! first 109 entries */
};
struct OLE_DIR
{
char name[64];
unsigned short namsiz;
char type;
char bflags; //0 or 1
unsigned long prev_dirent;
unsigned long next_dirent;
unsigned long dir_dirent;
char clsid[16];
unsigned long userFlags;
int secs1;
int days1;
int secs2;
int days2;
unsigned long start_block; //starting SECT of stream
unsigned long size;
short reserved; //must be 0
};
struct DIRECTORY
{
char name[64];
int type;
int level;
int start_block;
int size;
int next;
int prev;
int dir;
int s1;
int s2;
int d1;
int d2;
}
*dirlist, *dl;
int get_dir_block(unsigned char *fd, int blknum, int buffersize);
int get_dir_info(unsigned char *src);
void extract_stream(char *fd, int blknum, int size);
void dump_header(struct OLE_HDR *h);
int dump_dirent(int which_one);
int get_block(unsigned char *fd, int blknum, unsigned char *dest, long long int buffersize);
int get_FAT_block(unsigned char *fd, int blknum, int *dest, int buffersize);
int reorder_dirlist(struct DIRECTORY *dir, int level);
unsigned char *get_ole_block(unsigned char *fd, int blknum, unsigned long long buffersize);
struct OLE_HDR *reverseBlock(struct OLE_HDR *dest, struct OLE_HDR *h);
void dump_ole_header(struct OLE_HDR *h);
void *Malloc(size_t bytes);
void die(char *fmt, void *arg);
void init_ole();

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/vantler-foremost.git
git@api.gitlife.ru:oschina-mirror/vantler-foremost.git
oschina-mirror
vantler-foremost
vantler-foremost
master