jpezzi <[email protected]> added the comment: Here's the Netgem binary from their latest firmware.
http://www.megaupload.com/?d=ZIS4JYKS Decoder code: #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", 0x000620, 0x6A); // partition table extract_data("part_upgrade.img", 0x000686, 0x51B80); //upgrade extract_data("part_ngu.img", 0x052206, 0x40); // ngu extract_data("part_firmware.img", 0x052246, 0x44F64); // firmware // Blank of 12 bytes (padding ??) extract_data("part_elf.img", 0x08F9B6, 0x4710); extract_data("part_usr.img", 0x0940c6, 0x57FC00); //minixfs 1 extract_data("part_bios.img", 0x6140c6, 0x40000); extract_data("part_root.img", 0x6540c6, 0x67FC00); //minixfs 2 return( 0 ); } ---------- assignedto: -> cehoyos nosy: +cehoyos ____________________________________________________ FFmpeg issue tracker <[email protected]> <https://roundup.ffmpeg.org/roundup/ffmpeg/issue678> ____________________________________________________
