/*-----------------------------------------------------------------------*/
 /*                       R I N G 0,    I S S U E   # 1                   */
 /*-----------------------------------------------------------------------*/

                   Удаление RTL в программах на BC++ 5

                                                      by BKNY0NNX // SBVC

  Что  такое  RTL?  RTL  - Run-Time Library - это библиотека ЯВУ, которая
 всегда  с  вами  ;) В ней содержатся все стандартные (и нестандартные;))
 функции и процедуры языка.
  И  эта библиотека находится в каждой скомпилированной программе, что не
 всегда  полезно.  Например,  написали  вы программу, которая не вызывает
 стандартных  процедур,  сама маленькая, а код - 100K ! Необходимо как-то
 отрезать  RTL,  что  я  рассмотрю  на примере Borland C++ 5.00 for Win32
 Command Line.
  Создал  я  прогу-пустышку,  скомпилировал  и посмотрел на то, что и как
 получилось.  Оказалось, что компонуется какая-то библиотека "C0X32.OBJ".
 Нашёл  её  и дизассемблировал. Ничего интересного в ней нет :) Необходим
 её  аналог,  который  только вызывает внешнюю процедуру "_main", а затем
 отдаёт управление системе.
  Вот тот код, который нужен:

=====[CUT HERE]=====
.386
.model flat, stdcall
locals
jumps

extrn	        _main          	      : proc
extrn	        ExitProcess  	      : proc

.code
Start:

		call        _main
		call        ExitProcess, 0

end Start
=====[END CUT]======

  Скомпильте его и засуньте вместо "C0X32.OBJ".
  Кстати, "пустой" "C0X32.OBJ" ничего не даст :(
  Затем  я снова скомпилил пустышку. И - о чудо - в ней всё равно остался
 код, хотя его никто не вызывает ... В нём были текстовые строки, которые
 я  поискал  в  библиотеках.  Ента  библиотека  "CW32.LIB". А вот для них
 создадим пустышки командой

TLIB ИмяБиблиотеки.LIB

  Осталось  только  заменить оригинальные копии обджа и либов на наши, не
 забыв сделать резервные копии оригиналов.

  Да,  недостатки  после  этого:  вы  не сможете использовать стандартные
 процедуры :( Но нужны они вам ?! :)

                                                               13.11.2001