|
|||
Скачать STRIPPED - Search All Programs damaged by TDStrip
29.05.1992 Written by D.J. Murdoch for the public domain, May, 1992. SYNTAX: STRIPPED dir will search the given directory, and any of its subdirectories, for damaged .EXE files. DESCRIPTION: Borland ships a utility called TDSTRIP with its Turbo Debugger. TDSTRIP lets you strip the external debugging information out of .EXE or .OBJ files. However, version 2.0 (and some later ones) contain a serious bug: it damages the header of the .EXE file, setting the "minimum extra allocation" field to zero. The extra allocation fields are used by DOS to determine how much memory to give to your program. In addition to the amount needed to load the image of your .EXE file, you'll get at least the minimum allocation and as much as the maximum allocation, if it's available. If there's not enough memory to give you the minimum allocation, DOS will refuse to load the program. The extra memory is used in different ways depending on the compiler/linker, but Turbo Pascal makes typical use of it: uninitialized static variables, the stack, the overlay buffer, and the heap all reside there. If you try to load a TDSTRIP-damaged .EXE file, usually nothing bad will happen. You'll have more than the required minimum, and things will be fine. However, if memory is very tight, you might have less than the true minimum, but more than the 0 value that TDSTRIP has put in. Your program may be loaded with an initial stack pointer in video memory, or in an area where there's no memory, or in the middle of a TSR that's been loaded above it. You'll quickly crash. The program STRIPPED is an attempt to detect these damaged files. It checks the header, and verifies that the initial stack pointer is going to fall within the minimum allocation. If not, it prints the name of the file, and the amount of free RAM which you'd need to have for it to actually matter. STRIPPED doesn't try to fix the .EXE, because there's no way to know what the true minimum allocation should be; the program may use overlays, or depend on a certain size of heap. Turbo Pascal 6 source for STRIPPED is included in this archive, so feel free to attempt fixes if you feel confident. A safer approach, if available, is to recompile the bad .EXE, and not to use TDSTRIP on it. The EXEMOD program distributed with some compilers could also be used to repair the damage, if you're willing to guess at the required size. | |||
© 2009–2023 Russian Pascal Developer Network.
Техническая площадка: ISBIZ Хостинг |