Discussion in 'MDL Projects and Applications' started by SirSilentBob, Aug 25, 2009.
You need to login to view this posts content.
if you want to brick a NIC this is a sure fire good way to do it
Yes this is a great idea, I just think it's not as simple as editing an already existing ACPI table : )
I hope someone does complete a project like this one day.
Sort of the same as a PCI mod?
But how is it that much different from doing a "PCI MOD" ? If a NIC gets bricked, no biggie. Is it not the same thing, modifying the PXE, only doing it on a removable card vs. an on-board one? I would think it is safe, especially since some of these bioses are so damn hard to open and work with, and if the card is killed, better than a mobo? I'm willing to test it out on some NICs I just am lacking in the programming/mod department for this one.
Cool. Somehow I missed this and posted a very similar message just today.
Looking at it, I don't think there's a lot of danger of 'bricking' a network card. The flash rom being bogus probably won't cause any major hassles flashing back to an original/official/good one. It's possible that it could hang the boot if the PXE part tried to load, I guess, but even then there are ways to work around that, if needed.
Anyway, my idea was to take the official rom image for the card, concatenate the PCI MOD slic rom onto it, then patch the initial CALL pointers a bit to load the PCI SLIC ROM first, then the regular/PXE ROM.
I don't see any reason why it wouldn't work at least as well as any PCI MOD version of the BIOS modification SLIC tricks would.
I've got a card I can try it on I think.
You need to login to view this posts content.
I don't think there's any danger of ruining even one network card with just updating the PXE rom code. If you start mucking with the eeprom on the card, which stores things like the MAC address, that's a little bit more iffy.
The romomatic site is great, and it's definitely a good fallback/alternate.
I went looking on the pcbeta.com (chinese) website, then the pcinlife.com (also chinese) website, which are, I guess, where all this SLIC modifying technique came from in the first place.
I found the source code to a thing called Multi-Add-SLIC which is basically a PCI rom containing 10 different SLICs and a boot-up menu that lets you choose which one to use, which it then saves out to a sector on the hard drive so you don't have to pick it every time. Of course, all the comments in the source are in chinese, but the concept looks pretty straighforward to understand. This thing saves its output to your first hard drive in the space between the MBR and first partition (sector 10, I guess?). I don't like using the hard drive to save that information, which is why I'm hoping I can figure out how to save small values into the intel card's eeprom, which looks like it has plenty of room for such things (though I can't find a reference on what the different locations mean, etc).
It looks ... promising. The trick is getting up the steam to actually work on it.
fyi: mbr and then bootmgr uses sectors 1-16
Thank you all for the suggestions and support. One of the bios masters is going to send me some tools to try this out. I will start posting in here more as I get the tools and start trying things out. It looks promising enough, and I myself am not aware of any other NICs that allow updating of the PXE from within windows with their own tools. (I am sure there are others, I just am not aware of them.) If this works, then likely any NIC with an up-datable PXE can be modded, really opening up the possibilities to people who can not mod their bios, or do not want to take the chance. I really think the concept of having a easily removable PCI card that can be moved to computer to computer (essentially allowing the easy and safe transfer of a 2.1 SLIC from one machine to another) really worth trying at least. So when you upgrade your system, just transfer the NIC (or mod a newer one if you get another one) and then activated again. And of course since this would not place any files on the host system, theres no loaders/files to be detected by a future windows update and no surprise non-genuine messages.
I think just the biggest issue would be the limited testing ability, since I am just limited to a few Intel NICs I have. Maybe once something is worked out and perfected other people with removable up-datable PXE cards will come and post their rom image and bravely try it out on their system.
intel NIC Image mod
hope it works keep trying and keep posted
I am scratching my head over this one slightly, and slightly confused. I attempted to update using both of the modified files you provided, Yen. When I opened the Boot Options tab to update the flash image, I noticed that the version was no longer 1.2.22, but now it was 1.3.35. Before posting the original file, I attempted to update to the newest Intel Boot Agent. When I did this, it appeared that the flash was working, until it displayed the error "Invalid image file" and then closed. Apparently, despite the invalid image file warning, the update still took. I attempted to flash both of the files you provided, and both files gave me an "Invalid checksum" error. So, since I backed up the original flash image (the one I posted in this thread) I backed up the newer 1.3.35 image version, and then I restored the original 1.2.22 image. I then attempted to flash both the modified versions again. It still didn't work, still gave the "Invalid checksum" error. I noticed something weird though about the second backed up file (the one backing up the newer version.) It was double the size of the original version! So I am guessing that the particular NIC I am using had unused flash space on it, possibly leaving room for future upgrades? So now, I have a backed up flash that is 128KB instead of 64KB. I guess this is good, in the fact that leaves double the room to do mods and experimentation. But, still the original goal has not been reached unfortunately (No SLIC 2.1) I don't know if there are additional steps I can do to assist in accomplishing this, but let me know please. I am going to attach the latest backed up file, just in case anything could be done with it. Oh, and in closing, I also tried to flash both of the files to a second Intel NIC, one that had not been updated, just to be sure that me putting the updated version of flash on the first card did not cause the checksum failure. It didn't work on the other un-updated card (with the same original 1.2.22 firmware) either. So I am lost currently.
SkyCN123 & Yen, any more thoughts or ideas?
Sorry, forgot to include the file in my last post and it won't let me edit it and add it....
I got a variant of this technique to work.
One thing to note: After flashing the NIC, you have to set it *first* in the boot order, in order to get it to load and perform the SLIC insertion. (At least this was the case for my test, using an AMI bios).
I didn't flash in Windows (I used DOS ibautil.exe), but I suspect that what might be going on with the windows flashing program appearing to fail, but not really failing, is that Intel uses various intel-specific offsets in their ROMs to determine if the ROM image is a PXE rom, an RPL rom, etc (since they support different ROMs for different situations). None of that matters at all if you're not actually trying to use PXE, of course, which I don't think you care about. The DOS utility does the same thing. It flashes the rom, then immediately tells you that the Flash isn't programmed, because the China SLIC stuff doesn't adhere to whatever particular offset formats that the Intel ROMs do.
I tend to get lost in trying to do something perfectly, and fail the "good-enough" test, so after poring through various source codes (gpxe, the chinese multi-slic thing, etc)/roms/etc for several hours, I decided to keep it simple, and just do a 5-minute quick test. Since this network card isn't even my boot network card, I decided to just write a modified version of the provided HP2.1 slic rom as the nic rom on an intel Pro1000/MT (8086:100e).
I modified it by hand slightly, but not in any way that should change the functionality. I tore out the HP slic and replaced with a Dell slic (personal preference, I guess), and then patched the PCIR header vendor-id and device-id to match my network card, then zeroed the checksum and burned it in DOS using the gpxe instructions for intel cards (using ibautil.exe).
I'm only running Linux on this box at the moment (don't even have a working Windows installation while I get ready to try Windows 7), so I can't fully test it, but it seems like it worked, at least as far as using acpidump and acpixtract to dump and look at the acpi tables shows a seemingly-valid SLIC table, so it looks good to go.
Keep looking up!
I did exactly the same with my files I've provided to SirSilentBob. I've slightly modified the add_slic.bin (of course you need to correct the device and vendor IDs and make it finally sum to zero)
Which code have you used? Was it that one from 'me'? Have you extended the code to match the original size?
What about PROBOOT.exe? Does it work also.? Could you please upload the ibautil.exe?
Please try the ibautil.exe and flash the sum00 file..
Thanks Yen & truthinjection both!
I had a minor snag. The test system I am using is really old. It does not support booting from a USB device, so I have loaded DOS 7.10 onto an old 40 gig drive. Having a DOS formatted USB flash drive is my preferred way of flashing, since it's so easy and whatnot, but had to do a little more work here. I have a ATA to USB cord, so I am placing the files via USB from this computer onto the drive, and then plugging it into the old computer and booting directly from it for a DOS environment to try. (Like everything else, DOS is always the best for flashing images!) I am putting the IBAUtil.exe on the DOS drive, as well as Yen's modified files. I will be posting back again in a few minutes the results!
And I will upload a copy of the IBAUtil.exe for you in just a few Yen!