home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 September / CHIPCD_9_99.iso / offline / forum / crt_bug / CRTBUG.TXT < prev   
Text File  |  1999-07-16  |  4KB  |  82 lines

  1. CRTBUG wersja 2
  2.  
  3. Spis treÿci:
  4. 1. Wprowadzenie,
  5. 2. Do czego sêu╛y CRTBUG,
  6. 3. Jak go u╛ywaå,
  7. 4. Gdzie tkwi bêÑd w aplikacjach i jak CRTBUG go naprawia,
  8. 5. Co znaczÑ komunikaty CRTBUGa,
  9. 6. Kontakt
  10.  
  11.  
  12.  
  13.  
  14. 1. Wprowadzenie
  15.     PierwszÑ wersj⌐ CRTBUGa napisaêem w marcu 1999r. Stworzyêem ten program, poniewa╛ przestaêy dziaêaå aplikacje napisane w Pascalu. Mam tego u siebie caêkiem sporo, a ╛al mi byêo kasowaå tak wielu programów zwêaszcza, ╛e trudno dziÿ znale½å ich funkcjonujÑce odpowiedniki w Windows. Dzi⌐ki CRTBUGowi "weterani DOSa" mogÑ pokazaå co potrafiÑ tak╛e i na szybszych maszynach.
  16.  
  17. 2. Do czego sêu╛y CRTBUG
  18.     Najproÿciej mówiÑc - tak modyfikuje treÿå programu, ╛e nie zgêasza on wi⌐cej komunikatu: RunTime error 200 (dzielenie przez 0)
  19. Raz naprawiony program nie wymaga ju╛ ╛adnych dalszych zabiegów, mo╛na go u╛ywaå bez przeszkód nawet na jeszcze szybszych komputerach.
  20.  
  21. 3. Jak go u╛ywaå
  22. Skêadnia programu wyÿwietlana jest za  ka╛dym razem, kiedy  zostanie on
  23. uruchomiony bez parametrów. Aby zaprzÑtnÑå program do pracy wystarczy napisaå:
  24.  
  25. CRTBUG.EXE program1.exe program2.exe
  26. gdzie:
  27. program1.exe - to aplikacja zgêaszajÑca wspomniany wczeÿniej bêÑd
  28. program2.exe - to naprawiona wersja program1.exe
  29.  
  30. Je╛eli naprawiasz program PO RAZ PIERWSZY to NIE poprawiaj procedury Delay. Program zanim rozpocznie przeróbki zapyta Ci⌐ o to. Opcji tej u╛ywaj WY¥ñCZNIE do programów naprawionych wczeÿniejszÑ wersjÑ CRTBUGa.
  31.  
  32. Pó½niej najlepiej zamieniå nazwy programów, gdy╛ niektóre mogÑ poszukiwaå wewn⌐trznych nakêadek, lub doczytywaå dodatkowe dane.
  33.  
  34. Pami⌐taj jednak, by zawsze zostawiå kopi⌐ programu, na wypadek gdyby naprawa nie przebiegêa pomyÿlnie.
  35.  
  36. 4. Gdzie tkwi bêÑd w aplikacjach i jak CRTBUG go naprawia
  37. Jak  sama nazwa wskazuje  bêÑd  tkwi w module  CRT.  Pozostaje  jedynie
  38. odszukaå bê⌐dny fragment i wstawiå na jego miejsce to co trzeba.
  39. PoczÑtkowo wszyscy obwiniali sam kod procedury Delay, a konkretnie Delayloop, który liczyê ile ma trwaå opó½nienie. W tym te╛ miejscu poprzednia wersja CRTBUGa dokonywaêa modyfikacji. Program dziaêaê, ale nie byêo ╛adnych opó½nieΣ - jednym sêowem procedura Delay nie speêniaêa swojego zadania.
  40. Po kilku godzinach poszukiwaΣ i sprawdzania ró╛nych rozwiÑzaΣ metodÑ prób i bê⌐dów doszedêem, ╛e nale╛y zajÑå si⌐ samÑ procedurÑ Initialize.
  41. To tutaj znajdowaêo si⌐ feralne dzielenie. Na szcz⌐ÿcie z rozkazu dzielenia mo╛na byêo zrezygnowaå, trzeba byêo jeszcze zmieniå nieco treÿå procedury:
  42.  
  43. NOT AX
  44. NOT DX
  45. MOV CX,0037
  46. DIV CX
  47.  
  48. Na:
  49.  
  50. NOT AX
  51. NOT DX
  52. MOV CX,55
  53. JB @@3
  54. MOV AX,65536
  55. @@3: MOV DelayCnt.Ax
  56.  
  57. Mniej wi⌐cej takich zmian dokonuje nowy CRTBUG. Po tych modyfikacjach Delay znowu zacznie opó½niaå dziaêanie programu tak jak trzeba.
  58.  
  59. 5. Co znaczÑ komunikaty CRTBUGa:
  60. "Podany program nie jest aplikacjÑ BP7" - CRTBUG naprawia WY¥ñCZNIE programy napisane pod Pascalem.
  61. "Zbyt maêo cech podobieΣstwa (n) dla: x." - Pojawia si⌐ je╛eli program natrafi na bardzo zbli╛ony do matrycy fragment kodu, jednak iloÿå cech podobieΣstwa jest zbyt maêa. Zabezpieczenie to zapobiega modyfikacjom przypadkowych fragmentów kodu.
  62. "Poprawianie kodu "Delay" Adres [B]: x." - Pojawi si⌐ je╛eli na wst⌐pie u╛ytkownik zezwoliê na poprawienie tego co zmieniêa poprzednia wersja CRTBUGa.
  63. "Poprawianie kodu "Initialize" Adres [Bp]: x." - To jest najwa╛niejszy komunikat. Oznacza on prawidêowe poprawienie kodu aplikacji. Powinien pojawiå si⌐ jeden raz.
  64. "Nieobsêugiwany typ pliku. Obsêugiwany typ to EXE." - Pojawi si⌐ je╛eli u╛ytkownik b⌐dzie próbowaê naprawiå inny typ pliku ni╛ EXE.
  65. "BêÑd relokacji danych. Zbyt maêo podobieΣstw: n/t/52." - Jego pojawienie si⌐ jest bardzo rzadkie (jeszcze si⌐ nie spotkaêem) i oznacza, ╛e program nie mo╛e byå poprawiony, gdy╛ pod dokonaniu poprawek jego kod wykazuje zbyt maêo podobieΣstw z poprawnÑ matrycÑ. Program po prostu nie zadziaêa.
  66.  
  67. 6. Kontakt
  68. Je╛eli CRTBUG nie zadziaêaê  jak  powinien,  lub  wyÿwietliê  komunikat 
  69. o bê⌐dzie napisz na adres:
  70.  
  71. mabak@polbox.com
  72.  
  73. Maciej BÑk
  74. ¥ód½ 93249
  75. Ul. Ejsmonda 3m40
  76. Tel. (0-42) 642-2886
  77.      (0-601) 914-062
  78.  
  79. Je╛eli CRTBUG jakoÿ Ci pomógê - NAPISZ!
  80.  
  81. Nie wysyêaj pocztÑ skompresowanych programów, a jedynie opis zachowania CRTBUGa i nazw⌐ naprawianego programu.
  82.