Dacă nu există niciun instalator, mutați aplicația Windows fără distribuție

Adesea, există situații în care un program instalat pe un computer trebuie să fie în mod necesar pe o altă mașină. Și nu există instalator, copierea fișierelor nu este suficientă, iar persoana care a pus programul undeva a dispărut împreună cu distribuția.







Deci, cea mai importantă întrebare: ce să transferați pe lângă un dosar cu programul? Condiționat, tot ceea ce aveți nevoie poate fi împărțit în trei puncte:

  1. Fișierele pe care le accesează programul.
  2. Registrele de registru la care accesează programul.
  3. Mediul de execuție.

În cazul în care înțelegerea primelor două paragrafe nu sunt probleme, atunci ce despre al treilea ar trebui să facă o clarificare. În conformitate cu baza de date de execuție a însemnat aici, driver de dispozitiv (pseudo) numite conducte (Named Pipes), meylsloty, COM / ActiveX componente și așa mai departe. Asta este, totul cu care funcționează programul (și furnizate de un software terț, nu sistemul de operare) prin intermediul interfețelor standard Windows - fie că este vorba de rețea, IPC sau altele asemenea.

Mediul este cea mai problematică componentă atunci când migrează, și din cauza mediului în care trebuie să vă deranjez că sistemul de operare de pe ambele mașini se potrivește.

Ce fișiere și filiale ar trebui să transfer?

Doamne, să ne ridicăm paharele noastre, împreună cu o cafea, o băutură și aduce un omagiu celor răposați prematur NT Filemon monitoare de utilitate și NT Regmon, care a urmarit tratamentul oricărui proces la fișierele și cheile de registry, respectiv. geniu rău Mark Russinovich fără milă le anihila ... și apoi re-creat din cenușă într-un instrument puternic și util. Întâlnește, Monitor de proces. Este acest lucru va fi un important transfer de arme tulza și ne va ajuta să înțelegem ce fișiere sunt utilizate de program și care transformă cheie. Pentru aceasta avem nevoie de două funcții: Afișare activitate registru și afișare activitate sistem de fișiere.

A înțelege acest gunoi fără ajutorul unui parser este dificil. Pentru a simplifica problema, când m-am fost implicat într-un transfer similar, am schițat două Perl-script (căutați-le pe disc). Pune aceste script-uri la locația unde Logfile.csv a fost salvat (sau imediat salvează jurnalul pentru dosar, pentru script-uri). Acum rulați parse.pl. Acest script otparsit log-fișier și creează două jurnal: file.log vor avea acces unic la fișiere și foldere, recurs -Unique reg.log la registru sucursale.

Se separă muștele de la chiftele

  • Aveți nevoie de un program;
  • Nu este nevoie de program;
  • Pentru studii suplimentare.

Sortarea fișierelor, nu uitați să modificați căile absolute (complete) către componente (DLL-biblioteci, fișiere de setări și altele), dacă le găsiți. Deci, obținem fișiere REG, care trebuie importate pe mașina țintă. Acum despre fișiere. În directorul subdir, scriptul a recreat arborele de acces la fișiere în felul următor:

subdirector
C (litera unității)
Fișiere program







... și așa mai departe, inclusiv fișierele.

Transferul imediat

Dacă SFC (System File Checker) are grija de protecția bibliotecilor de sisteme Windows, atunci în cazul regiștrilor, nu este de așteptat un astfel de ajutor. Prin urmare, atunci când importați sucursale de registru de la o mașină de producție, trebuie să aveți dublu precauție. Și, ca și în fișierele de setări, va trebui să ajustați căile în parametrii string. Înregistrați componente COM - acestea sunt ușor de identificat prin prezența mai multor funcții exportate (de exemplu, DllRegisterServer).

Pentru cei care au uitat: înregistrarea se face echipa component.dll regsvr32 în cazul în care component.dll este un COM-server (prin modul în care, COM-serverul poate fi localizat în interiorul exe-fișier). Din Total Commander iubitorii de artă vor fi încântați că animalul lor are listerplagin că, la o dată definește COM / ActiveX. Dacă programul utilizează tehnologii specifice, este necesară o ajustare suplimentară. De exemplu, în cazul folosirii BDE (Borland Database Engine), este necesar să se facă modificări corespunzătoare în DataSource'ov care utilizează programul.

După aceea, rămâne doar instalarea și configurarea mediului în care cererea noastră are nevoie (dacă este necesar). Componente standard cum ar fi un server de bază de date pe care îl instalați singur. Transferul de mediu ar trebui să fie mai simplu, deoarece există servere de bază pentru serverele de baze de date. Instalați driverul poate fi un utilitar special și puteți înregistra serverul COM chiar mai ușor.

Transferarea driverelor

Și dacă programul funcționează cu driverul, al cărui singurul program de instalare este pierdut cu install.exe? Cum pot afla dacă un program funcționează cu un driver? Nu am gasit nici un instrument special, asa ca sa folosim OllyDbg. Pentru a lucra prin DeviceIoControl (prin intermediul acestui sistem de funcții de drivere de dispozitiv livrate echipe diferite), trebuie mai întâi să deschideți un dispozitiv prin CreateFileA / CreateFileW solicită o legătură simbolică. Din aceasta vom dansa.

Este foarte probabil că va trebui să simulam utilizarea sa reală, deoarece nu știm la ce punct poate fi accesat șoferul. Deschideți jurnalul în OllyDbg (combinația de taste ) și căutați liniile evidențiate începând cu COND. O citare marchează fișierul și dacă începe cu # 46; - Luați în considerare că acesta este șoferul nostru. Folosind utilitarul WinObj (apropo, scrise din nou de către Russinovich) aflați numele real al dispozitivului. Ar trebui să arate ca DeviceDevName. Cu ajutorul aceluiași WinObj, asigurați-vă că nu există un astfel de dispozitiv pe celălalt computer.

Este timpul să găsiți fișierul driverului în sine. Majoritatea driverelor sunt situate în% SystemRoot% System32Drivers. Mergeți la acest dosar și căutați șirul de nume al dispozitivului UNICODE (DeviceDevName). Dacă nu există niciun fișier cu o astfel de linie, deschideți "Service Manager".

Acolo, căutați toate driverele care sunt situate pe o cale non-standard - șirul de căutare ar trebui să fie în unul dintre ele. Același "Manager de servicii" vă va ajuta să transferați driverul pe alt computer (realizați capturi de ecran ale setărilor, adăugați dependențe și așa mai departe).

capcane

Dacă este posibil, asigurați-vă că efectuați toate experimentele numai pe o mașină virtuală - astfel veți fi siguri că sistemul nu este corupt și nu va deteriora sistemul principal de operare. Înainte de a mă rupe curajos în luptă, vă sugerez să încercați mâna la un program special conceput. De fapt, utilitatea programului este zero, dar transferul pur și simplu nu funcționează.

Bdetest.exe de lucru cu BDE prin alias «testBDE», pentru unii diavolul se referă la conducătorul auto, și pur și simplu nu poate funcționa fără anumite informații în sistemul de registru și de fișiere. Pe discul puteți găsi tot ce ai nevoie: rezultatul script-ul, alias BDE-ecran, baza de date de conducător auto și programul în sine.

concluzie

Transferarea programelor fără instalare este o sarcină non-trivială. Este necesar să existe cunoștințe în multe domenii ale administrării IT, programării, dezasamblării, depanării și bazelor de date. Dar amintiți întotdeauna: nu există programe inacceptabile! La urma urmei, după cum arată cititorul hackerului, dacă computerul face o greșeală, atunci te-ai înșelat.

Distribuiți acest articol cu ​​prietenii dvs.:







Articole similare

Trimiteți-le prietenilor: