View Single Post
  #6 (permalink)  
Old 02-22-2007
hacked2123's Avatar
hacked2123 Online
The Thinker
 
Join Date: Nov 2006
Posts: 382
Rep Power: 14
hacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond reputehacked2123 has a reputation beyond repute
lol I know it means nothing but look....ITS A BOOT LOADER LOL
ldr_size = fread(ldr_buf, 1, size, ldrfile);
fclose(ldrfile);

if (ldr_size > size - 0x200 * hdr.offset2) {
printf("boot loader is too large.\n");
ret = 10;
goto end;
}
}

/* change boot flag */
if (n_flag >= 0) {
write_be32(hdr_buf + 0x200, n_flag);
if ((fseek(file, 0x200, SEEK_SET) != 0) ||
(fwrite(hdr_buf + 0x200, 4, 1, file) < 1)) {
perror(argv[0]);
ret = 11;
goto end;
}
printf("boot flag changed.\n");
}

/* change boot loader format flag */
if (n_format >= 0) {
write_be32(hdr_buf + 0x20, n_format);
if ((fseek(file, 0x20, SEEK_SET) != 0) ||
(fwrite(hdr_buf + 0x20, 4, 1, file) < 1)) {
perror(argv[0]);
ret = 12;
goto end;
}
printf("boot loader format changed.\n");
}

/* write boot loader */
if (n_file != 0) {
if ((fseek(file, hdr.offset2 * 0x200, SEEK_SET) != 0) ||
(fwrite(ldr_buf, ldr_size, 1, file) < 1)) {
perror(argv[0]);
ret = 13;
goto end;
}
write_be32(hdr_buf + 0x24, ldr_size);
if ((fseek(file, 0x24, SEEK_SET) != 0) ||
(fwrite(hdr_buf + 0x24, 4, 1, file) < 1)) {
perror(argv[0]);
ret = 14;
goto end;
}
printf("new boot loader wrote(%ld bytes).\n", ldr_size);
}

Reply With Quote