filofel
02-21-2006, 05:43 AM
Hi,
I'm trying to figure out the minimum amount of RAM that NTLoader requires under the A000h limit to load, execute properly and ultimately boot NT / Win2k / XP (assuming that there's plenty of RAM available above the low 1 meg, of course)
I have considered desassembling parts of NTLoader, but after some looking into it, I realized that it was a pseudo .com file, followed by a rather large PE. Even with the (considerable) help of our old friend IDA, that would be a daunting task.
After looking around, finding and reading Andrea Geddon great parper "Understanding Windows 2K Sources (part 1)", I realized that
1) there were other ways to attack the problem :-)
2) it had already been done the right way and studied by some smart cookies.
So far, I only know that NTLoader itself is loaded at 2000 (thanks Andrea), and that its load size is likely to be in the 200+K. But that doesn't take into account the amount of RAM that it is might insist to use in the low RAM area.
If things come to worse, I have the empirical (and labor intensive for a start) solution of loading a small piece of code just below A000, that would hook into Int 15h SMAP call and return fake SMAP information, reducing the available segment below A000 until NTLoader refuses to... NTLoad.
If someone here had part or all of the answer at hand, I would really appreciate it!
Thanks in advance!
I'm trying to figure out the minimum amount of RAM that NTLoader requires under the A000h limit to load, execute properly and ultimately boot NT / Win2k / XP (assuming that there's plenty of RAM available above the low 1 meg, of course)
I have considered desassembling parts of NTLoader, but after some looking into it, I realized that it was a pseudo .com file, followed by a rather large PE. Even with the (considerable) help of our old friend IDA, that would be a daunting task.
After looking around, finding and reading Andrea Geddon great parper "Understanding Windows 2K Sources (part 1)", I realized that
1) there were other ways to attack the problem :-)
2) it had already been done the right way and studied by some smart cookies.
So far, I only know that NTLoader itself is loaded at 2000 (thanks Andrea), and that its load size is likely to be in the 200+K. But that doesn't take into account the amount of RAM that it is might insist to use in the low RAM area.
If things come to worse, I have the empirical (and labor intensive for a start) solution of loading a small piece of code just below A000, that would hook into Int 15h SMAP call and return fake SMAP information, reducing the available segment below A000 until NTLoader refuses to... NTLoad.
If someone here had part or all of the answer at hand, I would really appreciate it!
Thanks in advance!