예제 #1
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    base = LoadBase(L"ContactsBase.txt");

    char *test = (char*)base;
    qDebug() << test;
}
예제 #2
0
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;
}
예제 #3
0
파일: v8base.cpp 프로젝트: pgmsoul/GitLib
	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);
	}
예제 #4
0
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;
}
예제 #5
0
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;
}