MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); base = LoadBase(L"ContactsBase.txt"); char *test = (char*)base; qDebug() << test; }
int MenuTouch(int id, int event, int x, int y) { if(id == 0) { LoadBase(); LoadBoxPos(); shuffle(idarray); AssignIDxImageNumber(); LoadImages(); } if(id == 1) { MIH = ImageAdd("Assets/Scores.png"); ViewSetImage(MVH, MIH); fonthandle = FontAdd("Arial12Bold - FontSmall"); texthandle[0] = TextAdd(100,490,"No Record Found",fonthandle); } if(id == 2) { MIH = ImageAdd("Assets/Instructions.png"); ViewSetImage(MVH, MIH); } if(id == 3) { Menu(); } if(id == 4) { MIH = ImageAdd("Assets/Facebook.png"); ViewSetImage(MVH,MIH); fonthandle = FontAdd("Arial12Bold - FontSmall"); texthandle[0] = TextAdd(120,490,"Subscribe",fonthandle); texthandle[1] = TextAdd(80,510,"fb.com/Umair.Hasnain",fonthandle); texthandle[2] = TextAdd(90,530,"fb.com/Sair.Samim",fonthandle); texthandle[3] = TextAdd(98,550,"fb.com/hjgondal",fonthandle); OnTimer(); } if(id == 5) { MIH = ImageAdd("Assets/i.png"); ViewSetImage(MVH,MIH); //tell about project } return 0; }
void EnterJs(){ HandleScope store; int rt = -1; if(_env!=0) return; _env = new JsEnv; _threadFlag = 1; *_env->cont = Context::New(NULL,ObjectTemplate::New()); (*_env->cont)->Enter(); Handle<Object> glb = GetGlobal(); LoadBase(); LoadConsole(glb); LoadAPICall(glb); //给全局添加stack只读变量. glb->Set(String::New("Stack"),Object::New(),ReadOnly); //加载基本的JS库文件 cs::ResID rid(IDR_JS_BASE); LoadJsRes(rid,L"IDR_JS_BASE"); //加载JS库里面的纯js类或函数, 供C++使用. LoadLibStruct(glb); }
int CompressBase( const BYTE *pAveBuffer, DWORD dwAveBufferSize, const char *pszAvcFileName) { int NameCnt=0; AVP_BaseHeader BaseHeader; int ret=ERR_SUCCESS; FILE *fp=0; memset(mfRecordsArray,0,NUMBER_OF_RECORD_BLOCK_TYPES*NUMBER_OF_RECORD_TYPES*sizeof(SMemFile)); memset(RNumTable, 0,NUMBER_OF_RECORD_BLOCK_TYPES*NUMBER_OF_RECORD_TYPES*sizeof(int)); MemFileReset(&mfNames); NameIdx=0; memcpy(&BaseHeader, pAveBuffer, sizeof(BaseHeader)); if(BaseHeader.Magic==AVP_MAGIC) { if(!LoadBase(pAveBuffer,dwAveBufferSize)) { ret=ERR_BAD_FORMAT; goto err; } } else { ret=ERR_BAD_FORMAT; goto err; } if((fp=fopen(pszAvcFileName,"wb")) != NULL) { //char timeBuf[0x200]; //SYSTEMTIME st; SPtrArray BlockHeaderArray; AVP_BlockHeader* bhp; int i,j; int nbh; PtrArrayReset(&BlockHeaderArray); /*GetLocalTime2(&st); memset(BaseHeader.Text,0,0x40); sprintf((char *)BaseHeader.Text,"AVP Antiviral Database. (c)Kaspersky Lab 1997-%d.",st.wYear); *(DWORD*)(BaseHeader.Text+0x3E)='\xd\xa'; memset(BaseHeader.Authenticity,0,0x40); strcpy((char *)(BaseHeader.Authenticity), TimeFormat(timeBuf,0x200,"Kaspersky Lab. %d %b %Y %H:%M:%S")); *(DWORD*)(BaseHeader.Authenticity+0x3C)='\xd\xa\xd\xa';*/ BaseHeader.VXs.BXs.VerH= 0x03; BaseHeader.VXs.BXs.VerL= 0x00; BaseHeader.Flags=0x0001; BaseHeader.NumberOfRecordBlockTypes=NUMBER_OF_RECORD_BLOCK_TYPES; BaseHeader.NumberOfRecordTypes=NUMBER_OF_RECORD_TYPES; /*BaseHeader.CreationTime=st; BaseHeader.ModificationTime=st;*/ BaseHeader.Flags &=~1; //BaseHeader write fwrite(&BaseHeader,sizeof(BaseHeader),1,fp); //BlockTableHeader write BaseHeader.BlockHeaderTableFO = ftell(fp); nbh=NameIdx?1:0; for (i=0; i<NUMBER_OF_RECORD_BLOCK_TYPES; i++) for (j=0; j<NUMBER_OF_RECORD_TYPES; j++) if(RNumTable[i][j])nbh++; bhp=(AVP_BlockHeader *)malloc( sizeof(AVP_BlockHeader) ); memset(bhp,0,sizeof(AVP_BlockHeader)); for(i=0;i<nbh;i++) fwrite(bhp,sizeof(AVP_BlockHeader),1,fp); free(bhp); //Records & Links write for (i=0; i<NUMBER_OF_RECORD_BLOCK_TYPES; i++) for (j=0; j<NUMBER_OF_RECORD_TYPES; j++) { SMemFile cmf; UINT ib; BYTE *mb; if(0==RNumTable[i][j])continue; bhp=(AVP_BlockHeader *)malloc(sizeof(AVP_BlockHeader)); memset(bhp,0,sizeof(AVP_BlockHeader)); PtrArrayAdd(&BlockHeaderArray, bhp); bhp->BlockFO=ftell(fp); bhp->BlockType=i; //HERE define TYPES bhp->RecordType=j; bhp->NumRecords=RNumTable[i][j]; if(i==BT_RECORD){ switch(j){ case RT_KERNEL: bhp->RecordSize=sizeof(R_Kernel); break; case RT_JUMP: bhp->RecordSize=sizeof(R_Jump); break; case RT_MEMORY: bhp->RecordSize=sizeof(R_Memory); break; case RT_SECTOR: bhp->RecordSize=sizeof(R_Sector); break; case RT_FILE: bhp->RecordSize=sizeof(R_File); break; case RT_CA: bhp->RecordSize=sizeof(R_CA); break; case RT_UNPACK: bhp->RecordSize=sizeof(R_Unpack); break; case RT_EXTRACT:bhp->RecordSize=sizeof(R_Extract); break; default: bhp->RecordSize=0; break; } } else bhp->RecordSize=0; bhp->UncompressedSize=MemFileGetLength( &mfRecordsArray[i][j] ); bhp->Compression=1; MemFileReset(&cmf); MemFileSeekToBegin( &mfRecordsArray[i][j] ); bhp->CompressedSize=squeeze(&mfRecordsArray[i][j],&cmf,bhp->UncompressedSize,0); /* BYTE* */mb = MemFileDetach(&cmf); for(ib=0; ib<bhp->CompressedSize; ib++) mb[ib]^=(BYTE)ib; bhp->CRC=CalcSum(mb, bhp->CompressedSize); fwrite(mb,bhp->CompressedSize,1,fp); free(mb); } //Names write if(NameIdx) { SMemFile *mf; SMemFile cmf; UINT ib; BYTE *mb; bhp=(AVP_BlockHeader *)malloc(sizeof(AVP_BlockHeader)); memset(bhp,0,sizeof(AVP_BlockHeader)); PtrArrayAdd( &BlockHeaderArray, bhp ); bhp->BlockFO=ftell(fp); bhp->BlockType=BT_NAME; bhp->NumRecords=NameIdx; /* CMemFile* */mf=&mfNames; bhp->UncompressedSize=MemFileGetLength(mf); bhp->Compression=1; //CMemFile cmf(0x1000); MemFileReset(&cmf); MemFileSeekToBegin(mf); bhp->CompressedSize=squeeze(mf,&cmf,bhp->UncompressedSize,0); /* BYTE* */mb=MemFileDetach( &cmf ); for(ib=0; ib<bhp->CompressedSize; ib++) mb[ib]^=(BYTE)ib; bhp->CRC=CalcSum(mb,bhp->CompressedSize); fwrite(mb,bhp->CompressedSize,1,fp); free(mb); mb=MemFileDetach(mf); free(mb); } BaseHeader.FileSize = ftell(fp)+64; BaseHeader.BlockHeaderTableSize = PtrArrayGetSize( &BlockHeaderArray ); BaseHeader.AuthenticityCRC=(CalcSum(BaseHeader.Authenticity,0x40)); BaseHeader.HeaderCRC=(CalcSum((BYTE*)&BaseHeader.Magic,sizeof(BaseHeader)-0x84)); fseek(fp,0,SEEK_SET); fwrite(&BaseHeader,sizeof(BaseHeader),1,fp); //BlockTableHeader Again write fseek(fp, BaseHeader.BlockHeaderTableFO, SEEK_SET); for(i=0; i<(int)BaseHeader.BlockHeaderTableSize; i++) { fwrite(BlockHeaderArray.pp[i],sizeof(AVP_BlockHeader),1,fp); } fclose(fp); PtrArrayFreeAllPtr(&BlockHeaderArray); for (i=0; i<NUMBER_OF_RECORD_BLOCK_TYPES; i++) { for (j=0; j<NUMBER_OF_RECORD_TYPES; j++) MemFileDelete(&mfRecordsArray[i][j]); } MemFileDelete(&mfNames); } else { ret = ERR_FILE_IO_ERROR; } err:; return ret; }
bool ElfBaseLoader::LoadElfBases (SymbolTable * pTable) { char buf[PATH_MAX], line[PATH_MAX], * p, current_dir[PATH_MAX]; FILE * fp; getcwd(current_dir, sizeof(current_dir)); sprintf (buf, "%s/elf.set", current_dir); if ( (fp = fopen(buf, "rb")) == 0 ) { printf ("Error opening elf.set: %s\n", strerror(errno)); return true; } while ( fgets(line, sizeof(line), fp) != 0 ) { // Stop after first space character for (p = line; *p && *p > ' '; p++) ; *p++ = 0; if ( line[0] == 0 || line[0] == ';' || line[0] == '#' ) continue; // an empty line or a comment #if defined (ELF_OBJ_DEBUG_SUPPORT) if ( !strncmp (line, "ELF_", 4) ) { for ( char * s = p; *s; s++ ) if ( *s == '\r' || *s == '\n' ) *s = '\0'; while (isspace(*p)) p++; if ( *p == '\0' ) { printf ("Loading ELF obj file: %s\n", line + 4); p = 0; } else printf ("Loading ELF obj file: %s (link %s)\n", line + 4, p); sprintf (buf, "%s/%s", current_dir, line + 4); ELFparser * elf = new ELFparser (line+4, p); if ( !elf->ParseFile(buf, pTable) ) { sprintf (m_sErrorMsg, "Couldn't read ELF file %s: %s", line + 4, elf->GetError()); fclose (fp); return false; } m_ElfModules.push_back(elf); continue; } #endif printf ("Loading base %s\n", line); sprintf (buf, "%s/%s", current_dir, line); #if defined (SIGNED_ELF_BASES) switch (sign_check_file(buf, 1, vndArray, vndArrayCount, 0) ) { case SIGN_OK: break; case SIGN_FILE_NOT_FOUND: case SIGN_CANT_READ: sprintf (m_sErrorMsg, "Can't open file %s.\n", buf); fclose (fp); return false; default: sprintf (m_sErrorMsg, "Base %s: integrity check failed.\n", buf); fclose (fp); return false; } #endif if ( !LoadBase (buf, pTable) ) { fclose (fp); return false; } } fclose (fp); return true; }