⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 decoder.c

📁 Decoder for Netgem HD8160 firmware version 5.1.08
💻 C
字号:
#include <stdio.h>unsigned long DataDecode ( unsigned long k, unsigned char *data, int len ){ unsigned long newk; unsigned int c; newk=k; for ( c=0 ; c<len ; c++ ) { newk = (newk*0x41c64e71)+1;   data[c] = data[c]^((newk>>16)&0xff); } return newk;}void extract_data ( char *fname, unsigned long offset, unsigned long len ){ unsigned char buf[1024]; FILE* fp_in, * fp_out; int k = 0; fp_in  = fopen( "upgrade.bin","rb" ); fp_out = fopen( fname, "wb" ); if ( !fp_in || !fp_out )     { printf("Failed to open upgrade.bin for decoding.\n");       return;     } fseek( fp_in, offset, SEEK_SET ); while ( len ) { int block_len;   block_len = len>sizeof(buf) ? sizeof(buf) : len;   block_len = fread( buf, 1, block_len, fp_in );   if ( block_len == 0 )       break;   k = DataDecode( k, buf, block_len );   fwrite( buf, 1, block_len, fp_out );   len -= block_len; } fclose( fp_in ); fclose( fp_out );}int main(){extract_data("part_partition.img", 0x0005F0, 0x6A); // partition table extract_data("part_upgrade.img",   0x00065A, 0x43220); //upgrade extract_data("part_ngu.img",       0x04387A, 0x40); // ngu extract_data("part_firmware.img",  0x0438BA, 0x44F64); // firmware // Blank of 12 bytes (padding ??) extract_data("part_elf.img",       0x08882A, 0x4710); extract_data("part_usr.img",       0x08CF3A, 0x540000); //minixfs 1 extract_data("part_bios.img",      0x5CCF3A, 0x40000); extract_data("part_root.img",      0x60CF3A, 0x840000); //minixfs 2 return( 0 );} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -