I know I mentioned this a while ago here at the forum but I never actually added this to UE. Why? Because it was developed for the company I work for and got payed to do it. But code itself isn't such a big mystery but it is uber cool (TF2 player what 'r gonna do) because it uses only one API to do the realignment and that is because it is needed to be Windows 2000 compliant. And that was then... The same API call definition as in y0da's realign15.dll. This was done to retain compliance with my old unpackers which used y0da's realigner. And now... I added a new API called nicely IsPE32FileValid and you know what it does. But what you don't know is how does it do it. Meaning what is checked. And the answer is.... Everything, and it also checks for Microsoft PECOFF version differences between NT and 9x OSes making some files invalid on 9x . Here is a brief list:
1) Everything said in PECOFF 8.0 (ImageBase, PE32 field data...)
2) Table content (TLS, Imports [also validates by using existing libraries], Resources)
3) Section content, accessibility and file alignment
And there is a much cooler API called FixBrokenPE32File which will NOT be added to Realigner because... Well because it is uber cool and I don't wanna release it just yet. So Realigner comes with two APIs: RealignPE and IsPE32FileValid. And that is it for now. I plan on adding reloc stripping before this little thing gets added to UE. Stay tunned because it could happen very, very soon...