Windows vienlaicīgu rdp savienojumu skaits. LAP trūkumu novēršana, izmantojot RDP Wrapper bibliotēku

Termināļa serveris Windows 7/Vista/XP (sp1/sp2/sp3) ir reāls risinājums. Termināļa serveris lai izveidotu savienojumu ar attālo darbvirsmu Windows 7/Vista/XP (sp1/sp2/sp3) vairāki lietotāji vienlaikus.

Termināļa serveris var izmantot, lai palaistu vienu lietojumprogrammu ar attālie datori vai jūsu termināļa serveris operētājsistēmā Windows 7/XP / Vista / vienlaikus var pieslēgt dažādus vecus datorus, piemēram, 486 un Pentium 1, tie darbosies tā, it kā tiem būtu instalēta operētājsistēma Windows Vista/ 7 / XP ar Office XP-2003-2007, 1C un dažādas biroja programmas.

Noklusējums Windows 7 / Vista / XP neatbalsta vairāku lietotāju darbu vienlaikus. Lai ļautu vairākiem lietotājiem vienlaikus strādāt LAP, jums jāaizstāj fails C: \ Windows \ System32 \ termsrv.dll un jāveic izmaiņas reģistrā - lai noņemtu ierobežojumu, kas uzlikts Windows XP / 7 / Vista.

Pirms izmaiņu veikšanas Windows 7 / Vista / XP, pārliecinieties, ka jūsu rīcība nav pretrunā ar jūsu valsts likumiem un licences līgumu, tāpēc tas ir atkarīgs no jums, vai izmantot metodi vai nē.

Kā izveidot termināļa serveri no Windows XP / 7 / Vista?

1. Izveidojiet vairākus lietotājus ar administratora vai parastā lietotāja tiesībām, noteikti iestatiet paroli.

Pārliecinieties, vai ir iespējota opcija Ātra pārslēgšanās starp lietotājiem (Vadības panelis -> Konti lietotāji -> Mainīt lietotāja pieteikšanos)

2. Atļaut attālo savienojumu - atlasiet "Mans dators", noklikšķinot ar peles labo pogu, un atveriet "Properties". Parādītajā logā atveriet cilni "Attālās sesijas". Apstipriniet vienumu "Atļaut attālo piekļuvi šim datoram" ar atzīmi. Atlasiet attālos lietotājus (pretējā gadījumā Attālā darbvirsma darbosies tikai administratoriem) un noklikšķiniet uz "OK"

3. Pārliecinieties, vai attālās darbvirsmas savienojuma līdzeklis darbojas vienam lietotājam.

Windows termināļa servera izveide XP / 7 / Vista

4. Lejupielādējiet universālu ielāpu termināļa servera izveidei:
-
Windows XP sp2 sp3;
- Windows Vista sp1 sp2;
- Windows 7, 32 biti (x86) / 64 biti (x64).

5. Izpildiet failu UniversalTermsrvPatch — *. Exe kas atbilst jūsu sistēmas bitumam un nospiediet Plāksteris lai aizstātu failu ar C: \ Windows \ System32 \ termsrv.dll

6. Izpildiet * .reg failu, kas atbilst jūsu operētājsistēmai, lai veiktu izmaiņas reģistrā

7. Pārstartējiet operētājsistēmu

8. Sākt -> Palaist -> gpedit.msc

Operētājsistēmai Windows 7

Datora konfigurācija -> Administratīvās veidnes -> Windows komponenti-> Attālās darbvirsmas pakalpojumi -> Attālās darbvirsmas sesijas resursdators -> Savienojumi ->

Operētājsistēmai Windows XP

Datora konfigurācija -> Administratīvās veidnes -> Windows komponenti -> Termināļa serveris -> Ierobežot savienojumu skaitu

Iestatiet "Iespējots" un mainiet atļauto termināļu skaita vērtību.

9. Restartējiet datoru

Ja jūs visu izdarījāt pareizi, tad termināļa serveris Windows 7 / Vista / XP (sp1 / sp2 / sp3) gatavs. Tagad jums vajadzētu strādāt attālā darbvirsma vairākiem lietotājiem vienlaikus.

Papildu termināļa servera iestatījumi Windows XP

1. Kā liecina prakse, termināļa servera lietotāji tiek vienkārši atvienoti, un programmas turpina darboties. Varat iestatīt laiku, lai atvienotu neaktīvu sesiju

Sākt -> Palaist -> gpedit.msc
Datora konfigurācija -> Administratīvās veidnes -> Windows komponenti -> Termināļa serveris -> Sesijas -> Iestatīt laika ierobežojumu atvienotajām sesijām

Iekļaut un norādīt laiku

Ir arī citi ierobežojumi, jūs varat izvēlēties, kā jums patīk

2. Vienas programmas palaišana visiem attālajiem termināļa servera lietotājiem bez darbvirsmas

Sākt -> Palaist -> gpedit.msc
Datora konfigurācija -> Administratīvās veidnes -> Windows komponenti -> Termināļa serveris -> Palaist programmu, kad ir izveidots savienojums

Ieslēdz
\ Bkc.RemoteClient.exe

Norādiet darba mapi
C: \ Programmu faili \ Bankomz "valoda \ Viddaleniy kliєnt spasrezhennia

3. Vienas programmas palaišana atsevišķiem termināļa servera lietotājiem bez darbvirsmas(uzmanību, tas darbojas pat tad, ja piesakāties lokāli, tāpēc es pat nezinu, kā to vēlāk atcelt, izņemot dzēst lietotāju un pēc tam izveidot jaunu vai izmantojot sāknēšanas disks liveCD (ar programmu ERD-commander) ar izvēli ielādēt mums nepieciešamās operētājsistēmas reģistru.

Sākt -> Palaist -> regedit

Izveidojiet virknes parametru Shell un laukā "Vērtība" norādiet pilnu ceļu uz programmas failu

4. Vienas programmas patstāvīga palaišana, ko veic termināļa servera lietotājs, bez darbvirsmas

Pirmkārt, izpildiet 2. punkts visiem lietotājiem , atkārtoti ielādējiet un pēc tam atgrieziet vērtību, kāda tā bija (nav iestatīts)

Tā Windows klienta iestatījumos (attālās darbvirsmas savienojums), no kura tiek izveidots savienojums, cilnes Programmas sadaļā Iestatījumi atzīmējiet izvēles rūtiņu "Savienojot, palaidiet šādu programmu".

Norādiet pilnu programmas ceļu un faila nosaukumu

Norādiet darba mapi
C: \ Programmu faili \ Bankomz "valoda \ Viddaleniy kliєnt spasrezhennia

5. Programmas palaišana, kad piesakāties darbvirsmā

Pievienojiet saīsni Startup mapei
C: \ Dokumenti un iestatījumi \ lietotājvārds \ Galvenā izvēlne \ Programmas \ Startēšana \

Operētājsistēmā Windows 8/8.1, piemēram iepriekšējās versijas Tikai atbalstīta Microsoft klienta operētājsistēma viens vienlaikus ienākošs LAP savienojums... Tas nozīmē, ka ar Windows dators 8, tikai viens lietotājs (viena sesija), vietējais vai attālais, vienlaikus var izveidot savienojumu, izmantojot attālo darbvirsmu. Vairumā gadījumu ar to pietiek, bet dažreiz es vēlētos, lai vienlaikus varētu strādāt ar vairākiem lietotājiem savās sesijās. Labs piemērs var būt dators Media Center lomā, kad konsoles sesijā tiek atskaņots video, un tajā pašā laikā ir nepieciešams attālināti strādāt ar sistēmu, nepārtraucot video TV.

Padoms. Attālā RDP piekļuve nedarbojas Windows Home izdevumos, ir nepieciešami Pro vai Enterprise izdevumi.

Mēģinot atvērt otru RDP sesiju datorā ar operētājsistēmu Windows 8, tiek parādīts ziņojums, ka sistēmā jau ir pieteicies cits lietotājs un viņa sesiju var pārtraukt.

Padoms... Iepriekš datora rekvizītos cilnē Attālā piekļuve(Attālā) jums ir jāpievieno nepieciešamie lietotāju konti vietējai attālās darbvirsmas lietotāju grupai. Vietējiem administratoriem pēc noklusējuma ir atļauta attālā LAP piekļuve. Pēc ieslēgšanas LAP piekļuve sistēmas īpašībās, Windows ugunsmūris automātiski ieslēdz noteikumus, kas atļauj ienākošā satiksme uz portu 3389. Dažreiz šis noteikums ir jāpārbauda manuāli.

Tā, piemēram, serveru telpā Windows versijas tiek atbalstīti divi vienlaicīgi administratīvie savienojumi ar atsevišķām sesijām (organizēšanas gadījumā, pamatojoties uz Windows Server RDS termināļa serveris, šis skaitlis var būt vēl lielāks).

Tomēr internetā var atrast īpašu ielāpu, kas ļauj apiet šo ierobežojumu. Pateicoties šim ielāpam, vairāki lietotāji vienlaikus varēs izveidot savienojumu, izmantojot RDP, ar Windows 8 / Windows 8.1 datoru.

Svarīgs... Šī plākstera izmantošana patiesībā ir pārkāpums licences līgums un Microsoft produktu lietošanas noteikumus. Tādēļ jūs veicat visas tālāk aprakstītās darbības, uzņemoties risku.

Tātad, ielāps ietver sākotnējā sistēmas faila aizstāšanu % SystemRoot% \ System32 \ termsrv.dll(bibliotēka, ko izmanto attālās darbvirsmas pakalpojumi).

  • Windows 8 — termsrv.dll-win8.zip
  • Windows 8.1 — termsrv.dll-win8.1.zip

Pirms sistēmas bibliotēkas aizstāšanas izveidojiet dublējums termsrv.dll failu ar komandu:

Kopējiet c: \ Windows \ System32 \ termsrv.dll termsrv.dll_old

Tagad, ja kaut kas noiet greizi, vienmēr varat atgriezties pie sākotnējās konfigurācijas, aizstājot pašreizējo failu ar sākotnējo termsrv.dll_old.

Lejupielādējiet arhīvu ar bibliotēku savai Windows versijai.

Operētājsistēmā Windows 8 vispirms ir jāmaina tālāk norādīto atslēgu vērtība reģistra atslēgā HKLM \ System \ CurrentControlSet \ Control \ Terminal Server \:

  • fDenyTSConnections(DWORD) — 0 (atslēga atļauj datorā)
  • fSingleSessionPerUser(DWORD) — 0

To pašu darbību var veikt no komandrindas:

REG PIEVIENOT "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server" / v fDenyTSConnections / t REG_DWORD / d 0 / f REG ADD "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server" / v fionPerd_SingleS / fionPerd_SDWses

Pēc tam dodieties uz direktoriju C: \ Windows \ System32, atrodiet failu termsrv.dll un atveriet tā rekvizītus.

Pēc noklusējuma šī faila īpašnieks ir Uzticams instalētājs un pat administratoram nav tiesību to aizstāt.

Dosimies uz cilni Drošība un nospiediet pogu Rediģēt... Piekļuves sarakstā atrodiet vietējo administratoru grupu un piešķiriet tai visas tiesības uz failu ( Pilnīga kontrole) un saglabājiet izmaiņas.

Nākamajā darbībā pirms bibliotēkas faila aizstāšanas atveriet pakalpojumu pārvaldības konsoli ( pakalpojumi.msc) un pārtrauciet pakalpojumu Attālās darbvirsmas pakalpojumi.

Kopējiet direktorijā failu termsrv.dll no lejupielādētā arhīva savai Windows versijai % SystemRoot% \ System32 \(ar nomaiņu).

Piezīme... Arhīvs priekš Windows 8.1 satur divus failus 32_termsrv.dll un 64_termsrv.dll, attiecīgi 32 bitu un 64 bitu Windows 8.1 versijām. Izsaiņojiet arhīvu un pārdēvējiet failu savai sistēmas versijai ar termrv.dll

Pēc faila aizstāšanas palaidiet attālās darbvirsmas pakalpojumu pakalpojumu un mēģiniet izveidot divas RDP sesijas ar laboto mašīnu dažādos kontos. Ja visu izdarījāt pareizi, vajadzētu atvērt divas neatkarīgas attālās darbvirsmas sesijas.

Padoms... Iespējams, būs jārestartē dators.

Svarīgs! Termrv.dll ielāpu versijas izmantošanai ir vairāki trūkumi. Galvenais ir tas, ka nākamā Windows 8.1 / 8 atjauninājuma instalēšanas laikā šis fails var tikt aizstāts. Attiecīgi jums pašam būs jāielāgo jauns fails, izmantojot HEX redaktoru, vai jāmeklē internetā gatavs modificēts fails savai Windows versijai.

Kā risinājums, kas ir izturīgs pret faila termsrv.dll aizstāšanu instalēšanas laikā Windows atjauninājumi, jums vajadzētu izmantot atvērtā pirmkoda risinājumu LAP iesaiņojuma bibliotēka(pieejams vietnē GitHub), kas nepārvalda termrv.dll un ir slānis starp termināļa pakalpojumiem un SCM. Varat lasīt vairāk par RDP iesaiņojuma bibliotēkas izmantošanu.

Windows XP Professional un Windows XP Media Center Edition (MCE) ir savienojuma pakalpojums attālā darbvirsma (RDP), kas ļauj attālināti savienot datoru, piekļūt un vadīt no cita datora vai resursdatora. Tomēr mašīnas, kurās darbojas operētājsistēma Windows XP atļaut vienlaicīgi attālās darbvirsmas savienojums tikai viens lietotājs, kurš bija ar to savienots, bez vairākām sesijām attālās darbvirsmas savienojumi vai atbalsta saites.

Ikreiz, kad attālais lietotājs, izmantojot klientu, izveido savienojumu ar attālā darbvirsma (RDC) lai izveidotu savienojumu ar resursdatoru Windows XP, vietējais lietotājs atvienojas ar konsoles bloķēšanu vai bez viņa atļaujas. Attālā darbvirsma, atšķirībā no termināļa servera pakalpojumiem operētājsistēmās Windows Server 2003 un Server 2008, ir paredzēts vienreizējai lietotāja lietošanai neatkarīgi no tā, vai tas ir vietējais vai attālais lietotājs.

Šeit uzlauzt, lai atbloķētu vienu ierobežojumu kas ļauj veikt vairākas vienlaicīgas attālās darbvirsmas savienojuma sesijas operētājsistēmā Windows XP Professional un Media Center Edition, izmantojot vai nu laboto termserv.dll vai veco laboto termserv.dll būvversiju 5.1.2600.2055, lai vienlaikus varētu izveidot neierobežotu skaitu lietotāju. izveidot savienojumu ar datoru, izmantojot attālo darbvirsmu.

  1. Lejupielādējiet labotā kopiju, kas noņems ierobežojumus attālais savienojums uz darbvirsmu, kas ir atspējota jūsu Windows XP versijai:

Windows XP SP3: termsrv.dll (versija 5.1.2600.5512)

Informācijai termrv.dll ielāpā parasti ir šādi HEX kodu biti, kas tiek pārrakstīti šādās vērtībās:

00022A17: 74 75
00022A69: 7F 90
00022A6A: 16 90

  1. Restartējiet datoru un ielādējiet informāciju drošajā režīmā, noklikšķinot uz F8 sāknēšanas laikā un atlasiet drošais režīms ... Šī darbība ir nepieciešama tikai tad, ja esat tajā Šis brīdis izmantojot Windows termināļa pakalpojumus vai attālās darbvirsmas pakalpojumi, aizsardzība failu sistēma ir jāizlaiž, pretējā gadījumā tiks parādīts šāds kļūdas ziņojums, lai atjaunotu sākotnējo termsrv.dll.

3. Iet uz % WINDIR% Sistēma32 un izveidojiet dublējumu (vai pārdēvējiet) termsrv.dll .

4. Pārdēvējiet vai dzēsiet termserv.dll mapē % WINDIR% System32 Dllcache.

5. Kopējiet lejupielādēto termsrv.dll v % WINDIR% Sistēma32 , % WINDIR% ServicePackFiles i386(ja ir) un % WINDIR% System32 Dllcache .

6. Pēc tam lejupielādējiet un palaidiet, lai sapludinātu reģistra vērtības reģistrā, vai arī varat manuāli startēt reģistra redaktoru un pievienot šādus reģistra iestatījumus:



"EnableConcurrentSessions" = DWORD: 00000001


"AllowMultipleTSSessions" = DWORD: 00000001

7. Noklikšķiniet uz pogas Sākt -> Izpildīt un ievadiet komandu gpedit.msc, klikšķis Ievadiet lai atvērtu grupas politikas redaktoru.

8. Iet uz Datora konfigurācija -> Administratīvās veidnes -> Windows komponenti -> Termināļa pakalpojumi .

9. Iekļauts ierobežojiet savienojumu skaitu un iestatiet savienojumu skaitu uz 3 (vai vairāk). Šis iestatījums ļauj vienlaikus izmantot datoru vairāk nekā vienu reizi.

10. Pārliecinieties, vai attālā darbvirsma ir iespējota cilnē Remote System Properties, atlasot radio pogu. Ļaujiet lietotājiem attālināti izveidot savienojumu ar šo datoru .

11.Ieslēdziet ātra lietotāju maiņa v Vadības paneļi -> lietotāju konti -> Mainiet lietotāja pieteikšanos vai izslēgšanu .

12. Restartējiet datoru kā parasti.

Ņemiet vērā: ja nevarat aizstāt vai pārrakstīt failu termserv.dll — piekļuve ir liegta vai faila kļūda, vadības paneļa "Administratīvie rīki" sadaļā "Pakalpojumi" izslēdziet "Termīna pakalpojumi". Turklāt katram pievienotajam fiziskajam savienojumam ir jābūt savam lietotāja kontam mērķa datorā, un tas ir jāautentificē, izmantojot atbilstošos lietotājvārda un paroles akreditācijas datus.

Lai atinstalētu un atjaunotu sākotnējo termsrv.dll, vienkārši izdzēsiet pārskatīto versiju un pārdēvējiet rezerves kopiju atpakaļ uz “termsrv.dll”. Ja termināļa pakalpojumi ir izveidoti un darbojas, jums tas jādara drošajā režīmā.

Ja dators ar Windows XP savienots ar domēnu iekšā vietējais tīkls, Windows iestatīs RegKey "AllowMultipleTSSessions" uz "0" katru reizi, kad dators netiek restartēts. Lai AD domēna vidē būtu atļautas vairākas vai neierobežotas attālās darbvirsmas sesijas, ikreiz sistēmas palaišanas reizē "AllowMultipleTSSessions" datu vērtība ir jāiestata uz "1". Lai mainītu vērtību, vienkārši restartējiet ts_multiple_sessions.bat katru reizi, kad dators tiek startēts. Arī ielieciet ts_multiple_sessions.bat v C: Dokumenti un iestatījumi Visi lietotāji Galvenā izvēlne Programmas Startēšana mapes, lai tas automātiski palaistu pirmo lietotāju ar administratora tiesībām. Vēl viens risinājums ir instalēt papildu pakalpojums vai atslēgas definēšana reģistra filiālē HKEY_LOCAL_MACHINE PROGRAMMATŪRA Microsoft Windows CurrentVersion Run caur kuru pakešfails sāknēšanas laikā darbojas automātiski, un tas ir noderīgi, ja datoru neviens nereģistrēs, taču tam joprojām ir nepieciešams darbinieks, kas ļautu darboties neierobežotiem attālās darbvirsmas savienojumiem.

Tas ir savādāk, ja lietotājs aizver attālais savienojums tā vietā, lai izietu, kad viņš vai viņa mēģina pieteikties vēlreiz, tiek parādīts kļūdas kods 4226, kas saistīts ar TCP/IP notikumu. Lai atrisinātu šo problēmu, lejupielādējiet un instalējiet Windows XP TCP/IP, ierobežojot savienojumu un Event ID 4226 ielāpu, un izveidojiet savienojumu vismaz 50.

Šis komplekts ir veidots uz Microsoft Windows XP Professional SP3 krievu versijas oriģinālā attēla ar visiem atjauninājumiem! Multiboot disks. BEZMAKSAS LEJUPIELĀDE -


Tāpat kā iepriekšējās klienta versijās operētājsistēmas Microsoft, Windows 10 Pro un Enterprise lietotāji var attālināti izveidot savienojumu ar saviem datoriem, izmantojot attālās darbvirsmas pakalpojumu (RDP). Tomēr vienlaicīgu LAP sesiju skaits ir ierobežots - vienlaikus var strādāt tikai viens attāls lietotājs. Mēģinot atvērt sekundi LAP sesija, tiek piedāvāts beigt pirmā lietotāja sesiju.

Faktiski vienlaicīgu rdp savienojumu skaita ierobežojums nav tehnisks, bet gan licencēts, kas aizliedz veidot, pamatojoties uz darbstacija LAP serveris vairākiem lietotājiem.

Padoms... Windows 10 mājas izdevumos ienākošie attālās darbvirsmas savienojumi ir pilnībā aizliegti, taču tos var novērst, izmantojot LAP iesaiņojuma bibliotēka .

Mēs apskatīsim divus veidus, kā atspējot vienlaicīgu RDP savienojumu skaita ierobežojumu operētājsistēmai Windows 10:

    LAP iesaiņojuma bibliotēka

    Alternatīva termrv.dll faila modificēšanai ir izmantot projektu LAP iesaiņojuma bibliotēka... Šī programma darbojas kā slānis starp SCM-Service Control Manager un Terminal Services un ļauj ne tikai iespējot atbalstu vairākām vienlaicīgām RDP sesijām, bet arī aktivizēt RDP Host atbalstu Windows 10 mājas izdevumos. RDP Wrapper neveic nekādus izmaiņas failā termsrv.dll, vienkārši ielādējot termsrv ar mainītajiem parametriem.

    Tādējādi šis risinājums darbosies pat tad, kad tiks atjaunināta termsrv.dll faila versija, kas ļauj nebaidīties no Windows atjauninājumiem.

    Varat lejupielādēt RDP Wrapper no GitHub repozitorija: https://github.com/binarymaster/rdpwrap/releases (jaunākā pieejamā RDP Wrapper bibliotēkas versija v1.6)

    Padoms... Starp citu, ir pieejams RDP Wrapper Library pirmkods, kas ļauj pašam izveidot izpildāmos failus, ja vēlies.

    RDPWrap-v1.6.zip arhīvā ir vairāki faili:

    • RDPWinst.exe — RDP Wrapper Library instalēšanas/atinstalēšanas programma
    • RDPConf.exe — RDP Wrapper konfigurācijas utilīta
    • RDPCheck.exe — vietējais LAP pārbaudītājs — LAP pārbaudītāja utilīta
    • install.bat, uninstall.bat, update.bat - pakešu faili lai instalētu, atinstalētu un atjauninātu RDP Wrapper

    Lai instalētu utilītu, palaidiet failu install.bat ar administratora tiesībām.

    Kad instalēšana ir pabeigta, palaidiet RDPConfig.exe... Un pārliecinieties, ka sadaļā Diagnostika visi elementi ir zaļā krāsā.

    Mēs cenšamies atvērt otro LAP sesiju. Viss izdevās! Tagad mūsu Windows 10 ļauj diviem attāliem lietotājiem vienlaikus izveidot savienojumu, izmantojot RDP.

    Lai ielāgotu jaunas versijas (ja attiecīgās koda sadaļas loģika nav būtiski mainījusies), jums jāveic šādas darbības:

    0. Instrukcija piemērota vairāk vai mazāk izglītotiem, un galvenais, gudriem speciālistiem, kuri prot domāt. Tie, kuri ir pieraduši visu “kopēt” ar Copy/Paste, šķiet, netiks galā un baiļu un stereotipu pieauguma dēļ sacels “vaidas” un “žēlojas” par “daudz burtiem”, “grūti” vai “nIASILIL”. domāšana, nevis problēmas sarežģītība. Šī ir viņu daļa. Dzimis rāpot, kā zināms, nevar lidot. Neļauj sev izžūt, Anon! Iedzer Džadu vai dari DARBU un sāc cienīt sevi!

    1. Lejupielādējiet jebkuru - maksas vai bezmaksas versijaČau
    Der pat ļoti senas 90. gadu versijas, bet ja vajag lāpīt x64, tad vajag 8.x (sākot no 2000. gadu vidus :)) Labāk, protams, paņemt svaigu. Autore produktu izstrādā 25 gadus un ir maz citu tik perfektu programmētāja prasmes darinājumu.

    2. Paņemiet noteiktas atbalstītas versijas termrv.dll — oriģinālo un laboto versiju. Ja nav aizlāpīts, tad ir pamats uzskatīt, ka vajag aizlāpīt ar esošo ielāpu, neesi stulbs! Sāc domāt! Viss nepieciešamie faili ievietot atsevišķā mapē vai mapēs. Nemēģiniet neko rediģēt vienā sistēmas32 eksemplārā. Tomēr NEKAS NEIZRĀDĪSIES (ieraksts ir bloķēts sistēmā32) un to dara tikai auni.

    3. Salīdziniet viena un tā paša dll labotās un nelabotās versijas ar jebkuru bināro salīdzinātāju. Windows komplektā ir iekļauta FC konsoles utilīta. Komanda “FC / b termsrv.org termsrv.crk> differents.txt” noved pie peļņas. Atšķirību saraksts, un tas tur ir mazs, apmēram 20 rindiņas, tiks nosūtīts uz failu differents.txt.
    Faila atvēršana teksta redaktors un, vai nu atstājam atvērtu, vai arī pārrakstām uz papīra lapas, no kuras un ar kādu nobīdi mainījās baiti. Tūlīt mēs iedziļināmies un saprotam, ka visas nobīdes un baitu vērtības, kā norādīts zemāk Hiew, tiek norādītas heksadecimālajā sistēmā, taču tam nevajadzētu nevienu “biedēt”, jo nekas pat nebūs nepieciešams konvertēt uz decimāldaļu! (Ja pēkšņi tas ir nepieciešams, vispārējai izstrādei - palīgā Windows kalkulators.)

    Sarakstā redzam (identificējam) 3 nosacījumu blokus, kur adreses iet pēc kārtas. Pirmais bloks ir 2 baiti pašā exe sākumā, nobīdēs 140-s-something-h (dll ir tāds pats formāts kā exe, vienīgā atšķirība ir tā, ka tajā ir tikai procedūras un funkcijas ārējam zvanam - tā eksports, tāpēc to nevarēs tieši izpildīt, pārdēvējot to exe). Šie ir dati, kad nobīde tiek atrasta exe faila galvenē. Šīs kompensācijas veikals čekas summa code-data (bez galvenes), ko Windows pārbauda pirms palaišanas, pārliecinoties, vai fails nav bojāts un, attiecīgi, kaut kas nesabruks, mēģinot to izpildīt. Mēs pie tiem atgriezīsimies vēlāk.
    Tam seko aptuveni 10 baitu izmaiņu bloks. Tas ir tieši tas, ko mēs pētīsim. Pēc tā ir vēl viens izmaiņu bloks - 6 jaunākie exe-shnik baiti. Secinājums ir tāds, ka "nuļļu" vietā autors ir iedzinis savu labi zināmo vārdu "deepxw" tukšajā vietā beigās. Zems paklans viņam par ielāpu un ideju, taču nav pamata atkārtot viņa "izsmalcinātību", pārliekot ielāpu, tāpēc ikviens, kuram nav ko darīt garajos ziemas vakaros, to var izdarīt pie Hiew . Taču to var uztvert kā veltījumu autoram (tikai “tur” neviens nelasa).

    3. Atvērt oriģināls dll vienā logā Hiew, lāpīts otrā (palaidiet 2 Hiew kopijas! Vispār daudz ērtāk ir izmantot Far - divas ierīces, kā failu pārvaldnieku un pamatu "šo jūsu" Hiew palaišanai). Abos gadījumos nospiediet F4 (režīms) un atlasiet Atšifrēt (F3). Mēs redzēsim izjaukto faila daļu no paša sākuma. Nav ko skatīties, jo Hiew "mēģina" izjaukt headeri EXE fails, un tie ir dati, nevis kods. Nevajag tur blenzt, viņš tev parāda, ka tas ir pilnīgi normāli, jo te ir DOMĀT, nevis “kopēt”! Atkal sanākam kopā un sākam domāt, nevajag muļķīgi mēģināt un burtiski sekot instrukcijām...

    4. Abos Hiews (savukārt, sasodīts, domā...) nospiediet F5 (Goto) un redziet, ka augšpusē ir parādījies ievades lauks. Tur mēs iebraucam pirmās atšķirības adresē (no OTRĀ BLOKA!) Atrodas atšķirības failā. PIEMĒRAM, Win7SP1x86Rus tās ir adreses ap 19100h, savukārt VistaSP2Eng (x86 vai x64 - xs), kā redzēju autora blogā, tās ir adreses ap 65200h. Mēs nonākam līdz pirmā labotā baita vietai.

    Dati šajā Hiew logā izskatās šādi:
    - Pirmajā kolonnā - hex nobīde - no faila sākuma vai procesa atmiņā - ir atkarīgs no Hiew režīma, kas atlasīts ar Alt-F1 (Global-Local). Parāda Local = kā atmiņā pēc noklusējuma, ja Hiew izdodas izdomāt datu koda formātu. Mūsu gadījumā tā nav problēma, jo exe faila formāts ļauj to viegli “izdomāt”. Tāpēc nav jābaidās, ka ievadītā 19153 vietā redzēsit 06F2F8D51. Atmiņas adresēšana ir svarīga, lai izprastu procesa adresēšanu, kā tas izskatīsies izpildē vai, ja nepieciešams, analizētu kodu.
    - Otrajā kolonnā ir datu koda heksadecimālais attēlojums ar kura koda parsēšanu un kādi dati attiecas uz kuru instrukciju. Tāpēc katrai rindai ir atšķirīgs garums. Parādīts kā tāds tikai jūsu ērtībām. “Faktiski” (C) pašā failā tie visi ir “sašūti” kopā pēc kārtas, ko varat aplūkot “vienkāršā” hex datu skatā (F4-> Hex), kur hex baiti ir atdalīti ar atstarpēm. kreisajā pusē ir “stulbi” un labajā pusē - “krakozyabry” no ASCII tabulas, kas atbilst šiem baitiem – tāpat kā “jebkurā” “vecajā labajā” hex redaktorā, piemēram, WinHex, kura ekrānuzņēmumus esat redzējis vietnē “ jebkura" "kulkhatskiy" vietne. Mēs visu laiku strādājam ar vieniem un tiem pašiem baitiem, tāpat kā to dara pats dators. Jautājums ir tikai to izklāstā un interpretācijā. Kopējot izpildāmo failu no diska uz disku, tie ir VISI DATI un NAV KODA, jo neviens neko neizpilda. Bet ir vērts pateikt Windows, ka tas ir izpildāms fails, palaidiet to, tāpat kā Windows parsē to kodā un datos un tikai palaiž kodu no vietas, kuru iepriekš nosaka standarts un galvene, pēc tam pats kods, ko izpilda procesors. , tiek tālāk parsēts savā struktūrā un atkal tiek sadalīts kodā un datos utt.
    Režīmā F4-> Decode, nevis "krakozyabr", tas parāda mums baitus un "patieso nozīmi".
    - Trešajā (labajā) un lielākajā kolonnā (precīzāk, pāris kolonnās) mums tiek parādīts izjaukts koda fragments - teksts, t.s. Tieši šī koda (montāžas valodas) "mnemonisks" attēlojums, kas paredzēts "Homo sapiens" nedaudz vienkāršotai un saprotamai uztverei, ar viņa brīnišķīgo analogo asociatīvo domāšanu, kurai ir ārkārtīgi grūti uztvert abstraktas "plika" kodu secības.

    5. Pēc pārlēkšanas uz vēlamo nobīdi iepriekšējā rindkopā redzam, ka kursors (šis pelēkais :)) norāda uz 6 baitu komandas sākumu (x64 var būt vairāk baitu), no kuras pa labi instrukcija TYPE cmp eax ir “izjaukta”,
    ja paņemsim vienu rindiņu augstāk un nedaudz zemāk, tad iznāks TYPE konstrukcija:
    mov eax,
    cmp eax,
    jz .06F30B25E
    push edi
    nospiediet 020
    zvaniet .06F2E1440
    pop ecx
    Lai saprastu šo konstrukciju, nemaz nav jābūt "speciālistam montētājā", lai gan ieteicamas vismaz pamatzināšanas par "programmēšanu jebkurā valodā". Bet angļu valodas zināšanas nekādi nenāk par ļaunu!

    Pirmā instrukcija (kura nekādā veidā nav lāpīta, tā ir “virs pirmās atšķirības”) saucas mov - kas, atvainojiet, pirmā asociācija nāk prātā no angliski? - pareizi - kustēties - t.i. pārvietot. Instrukcijas argumenti parādās otrajā “apakšslejā”. eax un edi ir tā sauktie. 32 bitu reģistri ir atsevišķas atmiņas šūnas pašā procesā, kas paredzētas datu glabāšanai to apstrādes laikā. Gandrīz visi reģistri ir viena tipa, teorētiski tur var ierakstīt jebko, lai tikai ietilptu, bet daži no tiem tradicionāli tiek izmantoti noteiktu veidu datu glabāšanai (lai neapjuktu), piemēram, EAX, EBX, ECX , EDX tiek izmantoti tieši “lietotāja datiem”, turklāt ECX tradicionāli iet kā skaitītājs (piemēram, cikli), bet ESI, EDI - kā norādes uz noteiktu pašreizējo pozīciju atmiņā, adresēm, ar kurām strādāt. Un daži reģistri ir atkarīgi no aparatūras un labāk tiem neaiztikt - piemēram, IP reģistrā automātiski ir adrese pašreizējā instrukcija, kuru izpilda procesors, un ja tu mēģināsi tur ierakstīt kādus savus datus - savas programmas mainīgo, tad procents stulbi aizies uz instrukciju ar šo adresi un viss sabruks. ESP - norāda uz steku - sava veida "pudele", kurā pirmais iekāps, tas izkāps pēdējais (Fist In Last Out), paredzēts reģistros neiederīgu datu pagaidu glabāšanai, bet nav jēgas tos dzīt atpakaļ atmiņā, ja drīz tiks izmantoti. Lai strādātu ar datiem, parasti no atmiņas reģistrā tiek ievietots baits - 8 biti, vārds - 16 biti, garš vārds - 32 biti vai dubultais garš vārds 64 biti (64 bitu procesoriem). Lai strādātu ar īsiem datiem, varat atsaukties uz reģistra daļām (piemēram, eax sastāv no axe — apakšējie 16 biti un ah un al — pašas cirvja daļas), taču tas ir ārpus mūsu problēmas jomas. Pēc tam ar reģistrā esošajiem datiem tiek izveidots kaut kāds transformācijas paklājiņš, pēc kura rezultāts tiek ievietots atpakaļ atmiņā - tajā pašā vai citā šūnā, vai jebkurā citā programmas autora (vai viņa sastādītāja) piešķirtajā attiecīgiem mērķiem. .

    Adreses ir norādītas kvadrātiekavās. Ja jums ir jāņem DATI no atmiņas šūnas kādā adresē, nevis pati adrese, vienkārši ierakstiet adresi kvadrātiekavās. TYPE dizains nozīmē, ka dati ir jāņem no atmiņas šūnas ar adresi, kuras vērtību iegūst, saskaitot vērtību ESI + 324h reģistrā. Assemblerā pieņemts rakstīt skaidrāk, bet Hiew autoram tā bija ērtāk parādīt, varbūt skaidrības labad. Ievadot komandas, Hiew lieliski pieņem standarta tipa konstrukcijas, kā parādīts zemāk.

    Kopumā mēs saprotam, ka šī instrukcija ņem datus (4 baiti = 32 biti) adresē un ievieto tos EAX reģistrā. Nākamā instrukcija ((kura jau tiek lāpīta) ir CMP. Pirmais, kas nāk prātā gaišam, skolā cītīgi studējošam angļu valodu, ir salīdziniet. Runa ir par salīdzināšanu. Citādi viss tāpat kā iepriekšējā instrukcijā Adrese ir tikai blakus.
    cmp eax,
    salīdzina eax reģistra saturu un atmiņas vietu pēc adreses. Eax reģistrā iepriekšējā instrukcija iedzina numuru no blakus esošās šūnas. Tagad tas tiek salīdzināts ar numuru šūnā. Kas tur tik grūti, piedod??? Jūs varat iemācīt aunu! Tas noteikti ir vienkāršāk nekā "daudzu kilometru" objekti no kaut kādām sūdām, kas izvelk tūkstošiem īpašumu, kuros var noslīkt...
    Kā ar rezultātu? Salīdziniet salīdzināt, tad kāda jēga, vērīgs lasītājs jautās... Kā zināt, kur suns rakņājies? Un rezultāts tiek saglabāts īpašajā karogu reģistrā Karogi. Šajā rezervētajā reģistrā katrs bits nozīmē karogu. Jo īpaši ir nulles karogs - Zero. Ja salīdzināšanas instrukcijas izpildes rezultātā izrādīsies, ka skaitļi ir vienādi, izvēles rūtiņa tiks atzīmēta (1), ja nē, tad tā tiks notīrīta (0) (vai, gluži pretēji, pārāk slinka paskaties ar atkļūdotāju — šeit tam nav nozīmes). Tāpat ir vēl viena izvēles rūtiņa vairāk-mazāk — Parakstīt. Karogi mainās to instrukciju izpildes rezultātā, kas tos maina, un paliks savā pozīcijā, līdz tie tiks mainīti citas to stāvokli ietekmējošas instrukcijas izpildes rezultātā. Tāpēc pēc cmp mēs varam izpildīt jebkurus citus norādījumus atkarībā no izvēles rūtiņas stāvokļa, līdz mēs izpildām to, kas to maina. Karogu stāvokli nolasa nosacītās filiāles instrukcijas un daži citi, un rezultāts ir šo instrukciju darbība vai bezdarbība.

    Nākamā instrukcija iet
    jz .06F30B25E
    Norādījumi, kas sākas ar J [gandrīz] nozīmē Jump, ti. pārcelšanās uz citu vietu. Šī instrukcija attiecas uz nosacītām lēciena instrukcijām un apzīmē Jump if Zero – t.i. pārejiet uz adresi, ja ir ieslēgta izvēles rūtiņa Nulle. Ja izvēles rūtiņa NAV atzīmēta, tad “nekas nenotiks”. Kā arguments tiek norādīta lēciena adrese (tās var būt dažādas, relatīvas vai absolūtas, "tālu" vai "tuvu" atmiņā. Šeit adrese tiek norādīta programmas adrešu telpā, kā to konfigurē exe galvene,nav jēgas tajā iedziļināties,tas tikai visu sarežģīs.iepriekšējā instrukcija atklāja argumentu vienlīdzību,tad notiks pāreja,ja nē,tad nenotiks un procesors pāries uz nākamo instrukcija.

    Nākamās 2 instrukcijas
    push edi
    nospiediet 020
    Atcerēsimies, ka angļu valodā push nozīmē push, push. Šeit tas nozīmē skaitļu ievietošanu kaudzē pagaidu glabāšanai. Bieži vien mainīgie tiek saglabāti šādā veidā pirms procedūru ievadīšanas, ieskatoties procedūru reģistrus var izmantot citiem mērķiem, un, izmantojot steku, var gan saglabāt reģistra vērtības, gan nodot argumentus procedūrai, kas tos izvilks no turienes. pēc tā ievadīšanas un nosūtiet tur rezultātus pirms iziešanas, ja tādi ir un nepieciešami. Ērtības ir tādas, ka jums nav jāuztraucas par adreses vietas piešķiršanu nozīmīgu pagaidu datu glabāšanai. Ja jums ir jānodod masīvs, jums vienkārši jānodod tā adrese atmiņā. Nav iemesla pārsūtīt visus masīva elementus, tas tikai bezjēdzīgi patērēs atmiņu un procesora laiku, kā tas tiek darīts redlocking gadījumā. (Ja saskaņā ar darba loģiku ir jāsaglabā oriģinālā masīva kopija, tā ir cita situācija un programmētājs pats apzināti iniciē masīva kopēšanu replikācijas nolūkos.)
    Strādājot ar steku, par visu parūpēsies procenti – steka glabāšanas laukumu atvēl operētājsistēma ar aparatūras atbalstu procesoram.
    Pirmā instrukcija saglabās EDI reģistra vērtību – rādītāju uz noteiktu atmiņas apgabalu, bet otrā tur nospiedīs iepriekš definēto konstanti 20h. Iespējams, kāds procedūras arguments, bet mums tas ir vienalga, jo nav nepieciešams veikt analīzi, ko veica ielāpa autors - mēs pārnesam gatavo ielāpu uz citu programmas versiju, un tas parasti ir VIENKĀRŠI!

    Nākamā instrukcija
    zvaniet .06F2E1440
    Angļu valodā call nozīmē piezvanīt, piezvanīt.
    Runa ir par procedūras izsaukšanu. Procedūras izsaukuma kodā nav vārdu - ir adreses, kur atrodas viņu kods. Ērtības labad izjauktāji (tostarp Hiew) var izvilkt procedūru un funkciju nosaukumus no exe failu importa un eksporta tabulām (jo tas paredz mijiedarbību dažādas programmas un "bibliotēkām" pēc kompilācijas un procedūrām tiek doti nosaukumi, ar kuriem tās var izsaukt no citas programmas, bet iekšējām procedūrām pēc kompilācijas netiek piešķirti nosaukumi). Pirmkodos, protams, bija nosaukumi, bet pēc kompilācijas tie ir bezjēdzīgi... Tikai tie aizņemtu vietu. Procesoram nav jāzina kādu vārdi, tas skaita skaitļus... Reizēm dekompilatoriem/demontētājiem izdodas izvilkt procedūru nosaukumus no atkļūdošanas informācijas (ja nākamais kodētājs aizmirsa to nocirst un uzpūta bināra lielumu ar bezjēdzīga informācija), un šī ir palīdzība koda analīzē, taču mūsu gadījumā mums pat tas ir vienalga. Mums nav jāsaprot, kāpēc šī procedūra ir vajadzīga un ko tā dara ... Atgādinu, ka mums ir gatavs ielāps un, ja mums izdosies to pārnest “bez starpgadījumiem”, tad tajā nebūs jāiedziļinās .

    Pēdējā dotā instrukcija
    pop ecx
    Pop - darbība ir pretēja push - t.i. ievietojiet pēdējo vērtību, kas nospiesta kaudzē. V šajā gadījumā reģistrēt ecx. Droši vien šī instrukcija ir nepieciešama, lai izvilktu procedūras rezultātu, bet mums ir vienalga, t.sk. un tāpēc, ka šī instrukcija, tāpat kā iepriekš minētie 2 push-and-a, un izsaukums, pēc ielāpa nemainās un ir dota kādai vispārīgai prezentācijai un kā ielāpa atsauces robeža. Pēc ielāpa visas šīs instrukcijas paliks savās vietās, tāpat kā viss pēc tām.

    6. Tagad mēs paņemam laboto termrv.dll citā Hiew logā, skatiet instrukcijas tajā pašā adresē.
    mov eax,
    mov eax, 000000100

    mov, eax
    push edi
    nospiediet 020
    zvaniet .06F2E1440
    pop ecx
    Atšķirības ir redzamas tikai otrajā, trešajā un ceturtajā instrukcijā.
    Otrā kustība, 000000100
    vienkārši ierakstiet konstantu 100h (= 256) eax reģistrā
    Trešais nē
    “smieklīgākais” = NoOperation - nedara neko vispār un mūžīgi mūžos. Kāpēc tas ir vajadzīgs? Un tas ir nepieciešams, lai saskaņotu sinhronizāciju ar datu kodu. Lieta ir tāda, ka oriģināla un labotā koda lielumiem ir pilnībā jāsakrīt baitu skaitā un komandu robežās (kopā ar to argumentiem). Ja kaut kas pārvieto vismaz vienu baitu, procesors nokļūs “nepareizajā vietā”, kādu instrukciju argumentu uztvers kā komandu, bet nākamos baitus - kā šīs komandas argumentus, pat ja ir cits komandas kods. Viss izkustēsies uzreiz un liktenīgi. 99%, ka programma avarēs ar fatālu kļūdu. Komanda nop ir kods 90h un aizņem vienu baitu. Ja ir lieks kods, kas nav vajadzīgs vai pat kaitīgs ielāpa vajadzībām, to kopā ar argumentiem var aizstāt ar tik daudz nops pēc kārtas, cik tas aizņem baitus. Hakeru vidū to sauc par rakšanu vai rakšanu. Faktiski tas ir vienīgais veids, kā noņemt nevajadzīgo kodu no izpildāmā koda, jo tas nav teksts un jebkura “griešana no vidus” “saīsināšanas nolūkos” nekavējoties novedīs pie tā, ka visas adreses tiks pārvietotas, apēsts un vispār nekas neizdosies. Un “sliktākais” notiek, kad jaunais kods, kuram jānomaina vecais, neiederas “vecajā” vietā... Te sākas hakera galvassāpes - kā to saraut, lai ietilptu...
    4. kustība, eax
    ievietojiet numuru no eax reģistra atmiņas vietā
    Principā trešo un ceturto vai trešo un otro instrukciju var samainīt - tas neko nemainīs. Bet jūs nevarat noņemt nop nekādā veidā, jo jaunās komandas ir par 1 baitu mazākas par koda garumu nekā vecās, un šāda neatbilstība, ja tā netiks novērsta ar nop, nekavējoties novedīs pie sinhronizācijas kļūmes.

    Salīdzinājums “ar to, kas bija” uzreiz visu noliek savās vietās!
    Tas bija – paņem skaitli no šūnas, salīdzini ar skaitli no šūnas. Ja vienādi, tad "kaut kur" lēkt, ja nē, tad ejiet tālāk un veiciet procedūru. Uzdevuma kontekstā tas ir līdzīgs atļauto savienojumu skaita salīdzināšanai ar atļauto ierobežojumu (t.i., 1 darbstacijai vai 2 serverim). Limits tiek saglabāts kaut kādā konstantē, kuras adrese ir norādīta salīdzināšanas instrukcijā.
    Kas ir kļuvis - paņemiet no šūnas skaitli, atzīmējiet "šo biznesu" un nekavējoties pārrakstiet EAX reģistra vērtību ar konstanti 100h (= 256 - tas ir, acīmredzot, jaunais 256 savienojumu limits), un pēc tam ielieciet šo numuru šūnā
    Neviens neko nesalīdzina, vienmēr tiks izpildīta procedūra, kas tiek saukta zemāk. Turklāt šūnā, kurā savienojuma limits acīmredzami tika saglabāts “piespiedu kārtā”, tiek ierakstīts jauns limits = 256, ja kaut kur citur programmā ir citas šī ierobežojuma pārbaudes. TAS IR VISS! Grūti izdomāt ko primitīvāku!

    Ja mums pašiem būtu jāmeklē šī vieta, tad nāktos ar atkļūdotāju izsekot šī dll procedūrām, kā to acīmredzot darīja ielāpa autors, vai arī visu izjaukt ar kaut ko līdzīgu IDA un rūpīgi izpētīt kodu, kurā ir simtiem tūkstošu norādījumiem. Bet mums viss ir gatavs! Tas ir kā jokā par mehāniķi, kurš reiz pieklauvēja ar āmuru un mašīna ieslēdzās, bet smalkums ir tajā, ka viņš zināja, kur sist un tas maksā lielu darbu. (Tikai nerunājiet šeit par naudu - bāziet dupsi sevī! Īpaši lielo svētku priekšvakarā! "Pelnīšanas internetā" cienītājiem ir specializētas vietnes.)

    Kāpēc ielāps nedarbojas visās nākamajās versijās - jo kompilācijas laikā mainās adreses un nedaudz mainās kods (tā argumenti). Tas noved pie vajadzīgā koda nobīdes exe iekšienē uz citām nobīdēm, un, ja meklējat pēc paraksta (stingra baitu secība), var netikt konstatēts, ka argumenti ir mainījušies. Galu galā daudzas adreses ir arī instrukciju argumenti un maina bināro kodu līdz nepazīšanai, neskatoties uz to, ka tā būtība ir tāda pati ... Dariet to manuāli! Jums ir galva uz pleciem, nevis "stingra konvolūciju secība" ...

    7. Tagad termerrv.dll ORIĢINĀLĀ versijā, kuru ielāpi ir izlabojis, jāatrod noteikta unikāla, programmas kontekstā, baitu secība TUVUMĀ vietai, kas ir jāielāgo, lai to meklētu. jauna versija termsrv.dll, kuru vēlaties izlāpīt, bet ielāps to nelabos ...
    Jāskatās uz demontētāju, jāmeklē tam atbilstošie baiti un, ja izvēlaties kaut ko pārāk “vienkāršu”, tad šāda kombinācija meklēšanas laikā tiks sastapta daudzas reizes un būs grūti atrast īsto vietu, tā “noslīks” starp citu līdzīgu baru. Un mums “sitiena precizitāte” ir ārkārtīgi svarīga, jo, ja to aizlāpsi “nepareizajā vietā”, tas nedarbosies vai pat Windows uzkarīsies ...
    Meklēšanas virknei nevar atlasīt instrukcijas, kurās ir garas fiksētas adreses. Sastādot citas versijas, tās visticamāk izdzisīs un jaunajā versijā uz tām neko neatradīsiet.
    Visa procedūra, kur notiek pārbaude, ir maza, tikai pāris desmiti komandu. Montētājam tas ir "nekas". Hiew parādīs nosacījumu procedūru robežas kā “svītras” _ ^ _ ^ _ ^ _ ^ _ ^ _. Lūdzu, ņemiet vērā, ka procedūras sākumā ir izsaukums uz Windows API "importēšanas" procedūras adresi - CDefPolicy :: Query un Hiew to atklāja (tāpēc tika izzvejots un ierakstīts funkcijas nosaukums). Tam vajadzētu būt labam ceļvedim ceļā uz īsto vietu. Turklāt šis “kakbe” norāda, ka var būt arī cits problēmas risināšanas veids, piemēram, atrast noteiktu “slepeno” politiku, kas ir atbildīga par termināļa servera uzvedību. Interesenti var izsekot kodam ar atkļūdotāju un meklēt, kā tiek inicializēts mainīgais vai konstante ar savienojumu skaitu. Bet “kods no CDefPolicy” nav piemērots meklēšanas virknei, jo jaunajā versijā visticamāk tiks noņemta procedūras adrese importēšanā. Es mēģinātu meklēt pēc baitiem no procedūras sākuma pēc CDefPolicy. Šeit tas notiek:
    57 push ed
    6A10 push 010
    8BF1 mov esi, ecx
    33DB xor ebx, ebx
    iznāk 57 6A 10 8B F1 33 DB
    Beigās var pievienot vēl vienu sekojošās izsaukuma instrukcijas E8 kodu, bet NEVIS tā argumentu (nākamos baitus), jo šī ir adrese un tā mainīsies, kompilējot jaunas versijas.
    Šī secība man tiek parādīta, meklējot programmā Hiew (F7-Search)
    Tikai 3 atbilst Un izsaukums uz CDefPolicy ir redzams kontekstā tikai vienā gadījumā - pirmajā. Ja esat atradis vietu tādā pašā veidā, pierakstiet tās adresi no pirmās kolonnas (nospiežot Alt-F1 - Global!) “Uz papīra lapas” un mēģiniet to aizlāpīt.
    Ja kods ir tik ļoti mainījies, ka neko neatrod, meklējam citas unikālas sekvences, t.sk. smēlies no blakus esošajām procedūrām un mēģināt tās meklēt. Uzdevums ir atrast nepieciešamais kods, kur “viss sakrīt pēc nozīmes”, nevis secība, mēs par to domājam un skatāmies kontekstā, cenšoties jaunajā versijā atrast CDefPolicy :: Query. Jūs varat meklēt tekstu CDefPolicy :: Query failā new.dll, jūs atradīsiet virkni (vairākas reizes), bet ne vietu, kur ir atsauce uz tās adresi. Šī metode dažreiz palīdz atrast pareizo, izmantojot F6 (atsauce) programmā Hiew, un man izdevās atrast īsto vietu dll no Win7SP1x86Rus eksperimenta labad, bet ne to, ka tā darbosies visur, it īpaši ar citām programmām) .

    8. Tagad jums ir nepieciešams ielāpāmās versijas fails termsrv.dll. Palaidiet trešo Hiew kopiju, atveriet tajā jaunu dll ”(lai viegli pārslēgtos starp visiem trim un vizuāli salīdzinātu). Mēs atrodam īsto vietu, kā aprakstīts tieši iepriekš, vai dodamies uz adresi, kuru viņi uzrakstīja "uz papīra lapas" (papīrs vispār ir programmētāja draugs šajā mirstīgajā pasaulē, kur viņi mirst cietie diski, izsit kontaktdakšas un OS uzkaras).
    Mēs analizējam zemāk esošo kodu CDefPolicy :: Vaicājiet un viegli atrodam īsto vietu, PATĪK:
    cmp eax,
    jz .06F30B25E
    MĒS SAPROTAM, ka adrese, bet, ja tā ir mainījusies, piemēram, šī ir mums vajadzīgā adrese, un mēs ar to darbosimies turpmākajā rediģēšanā.

    9. Ja esat pārliecināts, ka jums ir tieši tas, kas jums nepieciešams, virziet kursoru virs cmp instrukcijas un drosmīgi nospiediet F3-Edit. “Pelēkais” kursors mainīsies uz “normāls” (teksta displeja režīmam) - apakšindekss. Tam jānorāda uz to pašu cmp instrukciju.
    Nospiediet Tab (vai F2), un parādīsies dialoglodziņš montāžas instrukciju ievadīšanai.
    Ievadiet tur instrukciju
    mov eax, 100
    Pēc tam ievadiet. Galvenajā ekrānā redzēsit, ka baiti "no instrukcijas" ir mainījušies un daži no tiem ir kļuvuši "zelta" (dzelteni). Tajā pašā laikā instrukcijas Apakšā "izkustējās" un labajā kolonnā tām pretī rāda "atkritumus" - nepavisam ne to, kas tur bija iepriekš.
    Komandu ievadīšanas dialoglodziņš virs galvenā loga turpina "karāties" un gaidīt jaunu instrukciju ievadi, vienlaikus rādot kādu nākamo, adresācijas kongresa dēļ nepareizi interpretētu instrukciju.
    Šai instrukcijai nepievēršam ne mazāko uzmanību un braucam ar nākamo.
    Ierakstiet nop un nospiediet taustiņu Enter
    Galvenajā logā tas iedegsies dzeltenā krāsā nākamā rinda ar kodu 90.
    Sinhronizācija tiks atjaunota, un nākamā komanda atkal būs jz. Tas piedāvās mainīt dialoglodziņu instrukciju ievadīšanai.
    Brauc tur iekšā
    mov, eax
    Ja 320 vietā cmp komandā bija cita adrese, tad brauc IT!
    Nospiediet Enter. pēc tam dzeltenā krāsā iedegsies kods 3. rindiņā, pa labi no kura jābūt mov, eax instrukcijai (vai nevis 320, bet gan iebrauktajam numuram).
    Mēs pārbaudām, vai koda datu sinhronizācija NAV izkustējusies. Nākamajai instrukcijai jābūt push edi (vai citai, ja kods ir ļoti mainījies un pirms ielāpa jums tur bija cita instrukcija - tai jāpaliek savā vietā un jāinterpretē pareizi, kas nozīmē, ka pēc tam viss ir kārtībā).

    Kad visi ir nobraukuši, VIENREIZ nospiediet taustiņu Esc. Instrukciju ievadīšanas dialoglodziņš pazudīs, bet to var jebkurā laikā atkal izsaukt (rediģēšanas režīmā), nospiežot Tab. Visi modificētie baiti būs dzelteni. Rūpīgi pārbaudiet, vai viss izskatās pareizi, nekur nav sajaukts. Neviens te tavā vietā neko nepārbaudīs, NAV nekāda ranga vai titula "aizsardzības no muļķiem". Regālijas neviens neņems vērā. Ko viņi izdarīja - ko viņi ieguva. Nakosyachili - sasalst un nedarbosies.
    Ja viss ir kārtībā, nospiediet taustiņu F9 (Atjaunināt). Izmaiņas tiks ierakstītas failā diskā, un mainītie baiti mainīs krāsu uz parasto (ciāna).

    10. Tagad jums ir jālabo kontrolsummas exe. To darīt ir neprātīgi garlaicīgi, es domāju, ka Hjū paveiks šo darbu jūsu vietā, un jums nebūs jādara gandrīz nekas. Nospiediet F8 (Galvene). Tiek parādīts "pelēks, neaprakstošs" logs ar exe faila galvenes parametru "atšifrēšanu".
    Nospiediet F3 (rediģēt). “Neapraksta” loga augšpusē parādās “krāsains” violets. Tajā ir uzskaitīti visi galvenes parametri ar to adresēm un vērtībām. Ar garlaicīgu seju ritiniet līdz beigām un atrodiet tur parametru Kontrolsumma. Labajā pusē tā vērtība (pati kontrolsumma) ir norādīta heksadecimālajā un decimālajā izteiksmē, kas palika "mantota" no sākotnējā UNPATCHED faila. Vēlreiz nospiediet taustiņu F3, un, lūk, līnija kļūst dzeltena, un kontrolsumma maina savu vērtību. Mēs varam uzticēties Hiew, bet mēs varam to atrast forumos vai grāmatās un aprēķināt to manuāli. Ja “viss jums ir piemērots”, nospiediet taustiņu F9 (Atjaunināt). Logi mirgo, viss pazūd... Šīs ir beigas, domā nezinātājs lasītājs. Bet, kad putekļi nosēžas, kontrolsumma ir pareiza. Neuzticīgie var atkārtoti ieiet iepriekš minētajā dialogā un salīdzināt kontrolsummu ar to, kas tika rūpīgi saglabāta pirms izpildes spainī uz papīra. Varat iziet no Hiew, izmantojot Esc, un pāriet uz produkta testēšanas posmu.

    11. Kad esat saņēmis ielāpu failu, varat mēģināt aizstāt termrv.dll mērķa OS.
    Sakarā ar Windows aizsardzības mehānismu izmaiņām sistēmas faili, kā arī ierakstīšanas aizliegums darbojas programmas(koplietošanas pārkāpums) jums būs jāpārtrauc termināļa pakalpojumu pakalpojums (skatiet citu lietotāju komentārus iepriekš) un jāaizstāj dll kopijas "jebkurā WinSxS" utt., lai nesankcionētais Windows pat aizmirsa domāt par mēģinājumu atjaunot neizlabota versija.

    Ja viss darbojas, tad tu esi kļuvis par kulkhakeri vai esi spēris pirmo APZINĀTO soli šajā ceļā. Neviens netraucē jums izvēlēties un mācīties tālāk, padarot pasauli labāku un laipnāku. Tīklā ir daudz instrukciju un veseli tematiski forumi tiem, kas vēlas domāt ar savu galvu, nevis tikai patērēt patērētājiem paredzētu porno no Matrix.

    Nevilcinieties publicēt izmainīto baitu sarakstu (to var iegūt, izmantojot to pašu “krājumu” “FC / b File1 File2 ″)” citiem, mazāk pieredzējušiem lietotājiem šeit un/vai citos resursos, dari labu savam kaimiņam, kā Tas Kungs novēlēja un pagodiniet viņa vārdu hakeru vēstures annālēs.

    Atbilstoši izmaiņu sarakstam var izveidot .CRK failu (lāpītājiem, kuri saprot šo seno formātu) vai patch.exe, izmantojot kādu ielāpu veidotāju, no kuriem evolūcijas gadu laikā ir sarakstīti desmitiem un simtiem. Tikai pēc tam izvēlieties “ar Windows atbalsts Vista / 7 ″, jo veci, lai arī labi piemēroti, bet neko nezina par Escalate privilēģijām, un Windows muļķīgi neļaus viņiem neko labot Windows / sistēmas vai programmu failos. Instrukcijās būtu jāmin prasība apturēt termināļa pakalpojumu vai izmantot ielāpus atsevišķās mapēs esošajiem failiem, kam seko paši lietotāji aizstāšana sistēmā32. Jebkurā gadījumā publicējiet izmaiņu sarakstu, neesiet vainīgs "lauros", jo kādam var nākties drāžēt manuāli un infa ļaus jums atrast alternatīvu risinājumu. Autora ielāps to visu dara automātiski, arī strādājot ar WinSxS - paskatījos kodu, bet domāju, ka nebūs viegli atrast tādu ielāpu veidotāju, lai to visu ņemtu vērā.