Îmbină două fotografii. Combinație artistică de două fotografii într-una singură

În practica hackerilor, destul de des există o nevoie
încorporați codul în fișierul exe finalizat(nu neapărat rău intenționat) astfel încât să primească mai întâi controlul, să nu provoace abuzuri din partea antivirusurilor și, în general, să se comportă cât mai discret posibil, fără a fi vizibil. Cum să o facă? Știm cum, iar acum îți vom explica în detaliu.

Există o întreagă familie de utilitare concepute pentru a lipi mai multe programe într-un singur fișier, cu numele comun „joyners” (din engleză „joiner” - „connector”):
Tamplar de lama, Super-lipici, MicroJoiner, Juntadorși multe altele. Al lor prezentare detaliată poate fi găsit în articolul „”. Cu toate acestea, calitatea lipirii lasa mult de dorit. Cei mai mulți membrii pur și simplu plasează fișierul încorporat în suprapunerea fișierului exe principal și îl copiază pe disc la pornire într-un folder temporar sau, mai des, în directorul de sistem Windows, la care, desigur, un simplu utilizator care nu stă. ca administrator nu are drepturi de scriere, iar operațiunea este acoperită cu un bazin de cupru. În orice caz, copierea durează ceva timp, încetinind încărcarea programelor, ceea ce dă naștere unor suspiciuni vagi în capul utilizatorului.

Joynerii mai avansați lucrează pe principiul
pachete executabileși proiectați exe încorporat direct în sistemul de operare
memoria, care nu numai că accelerează încărcarea, dar și, din punct de vedere al formatului PE, arată mult mai mult
corect din punct de vedere politic (un fișier PE „cinstit” cu o suprapunere este o raritate).
Cu toate acestea, toți tâmplarii, fără excepție, mai devreme sau mai târziu cad în baze de date antivirus, deoarece sunt utilități gata făcute în care este ușor să extragi o semnătură constantă (chiar dacă sunt implementate pe o bază polimorfă).

Hackerii adecvați nu se comportă așa și lipesc programe singuri. Și nu este deloc greu! Tot ce ai nevoie este o cunoaștere a prietenilor loiali și abilități minime de programare C. Dar înainte să luăm taurul de coarne, să facem o clarificare importantă. Codul injectat nu trebuie să fie un virus, vierme, rootkit sau orice altă infecție rău intenționată, prin urmare, pentru a evita neînțelegerile, vom fi de acord să-l numim X-code.

Cum vom proceda

Fiecare fișier exe importă una sau mai multe biblioteci dinamice (Dynamic Link Library, sau DLL pe scurt) enumerate în tabelul de import. Când este lansat un fișier exe, încărcătorul de sistem analizează tabelul de import, încarcă toate bibliotecile dinamice enumerate în acesta, apelând funcția DllMain pentru a inițializa fiecare DLL și numai după aceea transferă controlul către punctul de intrare original (Punctul de intrare original sau OEP pe scurt) al fișierului exe lansat.

Astfel, dacă adăugăm DLL-ul nostru la tabelul de import al fișierului exe experimental, problema injectării codului X va fi rezolvată cu succes. Cel mai remarcabil lucru este că un DLL poate fi scris în orice limbă (chiar și în asamblare, chiar și în DELPHI) și este complet imun la antiviruși, deoarece aceștia sunt organic incapabili să recunoască o infecție necunoscută. Da... Analizoare euristice. Dar aceste lucruri sunt foarte ușor de ocolit (care face obiectul multor articole, inclusiv al meu, care poate fi găsit pe
http://nezumi.org.ru).

Pregătirea pentru experimente

Înainte de a invada structurile de bază ale unui fișier PE, este o idee bună să vă faceți o idee generală despre structura acestuia. MSDN include o specificație pentru formatul PE ("Microsoft Portable Executable and Common Object File Format Specification"), scrisă într-o limbă ostilă pentru noi. Limba englezăși concentrat în principal pe programatori onești. Myshkh a corectat această deficiență prin traducerea specificației în rusă și reorientarea acesteia asupra hackerilor. Copie digitală disponibil pentru descărcare gratuită la
http://nezumi.org.ru/souriz/PE-desc-n-inject.zip
iar pe disc la revistă.

Ok, acum să pregătim o „drosophila” concepută pentru a injecta codul X. Un exemplu scris în C este prezentat mai jos:

#include main() ( printf("Sunt nezumi\n"); //afișează ceva pe ecran }

Îl compilam cu orice compilator adecvat (de exemplu, în cazul Microsoft Visual C++ Linie de comanda va arăta astfel: „$cl.exe inject.c”). După aceea, pe disc se formează fișierul inject.exe, care, atunci când este lansat, afișează următorul salut pe ecran (rețineți că acesta este un program de consolă care trebuie lansat de sub FAR "a sau comanda standard cmd.exe". interpret; atunci când este lansată din Explorer, fereastra consolei se va închide automat imediat după terminarea programului și nu vom vedea o coadă):

$inject.exe
Eu sunt nezumi

După ce ne-am ocupat de „Drosophila”, să pregătim biblioteca dinamică, adică chiar codul X pe care îl vom încorpora în inject.exe. În cel mai simplu caz sursă va arata asa:

#include #include // creați o funcție de export inactiv, // care va fi apoi importat de „drosophila”__declspec(dllexport) int dummy()( returnează 0;) /*punct de intrare la un dll care preia controlul în diferite circumstanțe*/ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) ( //salut afișat înainte de lansarea „drosophila”if (fdwReason==DLL_PROCESS_ATTACH) printf("bună, lume!\n"); //salut afișat înainte de sfârșitul „drosophila”if (fdwReason==DLL_PROCESS_DETACH) printf("la revedere, lume!\n"); )

Rețineți că DllMain, spre deosebire de EntryPoint, este apelat de mai multe ori: a) atunci când este atașat la un proces; b) când procesul este încheiat sau biblioteca dinamică este descărcată de funcția FreeLibrary API; c) când un proces creează un fir nou; d) când unul dintre firele de execuție existente se termină. Cu alte cuvinte, DllMain vă permite să urmăriți anumite evenimente de sistem și să răspundeți corespunzător la acestea. În acest caz, tipărim „bună, lume!” înainte de a lansa „drosophila” și „la revedere, lume!” înainte de a-și termina munca.

Biblioteca dinamică este compilată după cum urmează: „$cl.exe injected_dll.c /LD”, unde tasta „/LD” spune compilatorului că este necesar să genereze DLL, și nu EXE (cum se întâmplă în mod implicit) .

Injectarea X-DLL în tabelul de import Drosophila

Ne luăm în picioare, deschidem fișierul inject.exe, trecem la modul hex , apăsăm pentru a afișa antetul PE, apăsați (Dir) și, printre alte elemente IMAGE_DATA_DIRECTORY, selectați secțiunea de import (Import), situată în cazul nostru la adresa RVA egală cu 5484h și cu o lățime de până la 28h de octeți (vezi Figura 1).

Cheie ne duce la structura Import Directory Table, despre care vom vorbi puțin mai târziu. Între timp, să discutăm despre cum să găsim un pointer către tabelul de director de import în absența unei imagini.

Dword la decalajul de 80h de la începutul antetului PE (ușor identificabil vizual prin semnătura PE) este adresa RVA care indică tabelul de director de import, iar următorul dword stochează dimensiunea acestuia. Deci, pentru căutarea tabelului
Hiew import este complet opțional.

Tabelul de import este o structură destul de complexă de tip ierarhic. Partea de sus a ierarhiei este ocupată de structura Import Directory Table, care este de fapt o matrice de structuri subordonate de tip IMAGE_IMPORT_DESCRIPTOR, fiecare dintre ele conține un pointer RVA către numele bibliotecii dinamice încărcate, link-uri către OriginalFirstThunk și FirstThunk cu nume. /ordinale ale funcțiilor importate (mai mult, câmpul OriginalFirstThunk este opțional și poate fi egal cu zero). Celelalte două câmpuri - TimeDateStamp (ștampilă de timp) și ForwarderChain (redirecționare) - sunt, de asemenea, opționale și, prin urmare, pentru a ne conecta propriul DLL, trebuie să completăm doar două câmpuri ale structurii IMAGE_IMPORT_DESCRIPTOR: Nume și FirstThunk și, de asemenea, să creăm un Import Address Table (abreviat IAT), care importă cel puțin un nume (în acest caz
manechin).

typedef struct _IMAGE_IMPORT_DESCRIPTOR ( unire ( Caracteristici DWORD; //0 pentru terminarea descriptorului de import nulDWORD OriginalFirstThunk; // RVA la IAT original neconsolidat); DWORD TimeDateStamp; // TimeDateStamp DWORD ForwarderChain; // -1 dacă nu există expeditori Nume DWORD; // numele dll-ului DWORD FirstThunk; // RVA la IAT ) IMAGE_IMPORT_DESCRIPTOR;

Dacă în loc de o ierarhie armonioasă a structurilor, în capul nostru s-a format terci, nu vă faceți griji - acest lucru este normal! Treptat, se va așeza și toate structurile vor cădea la locul lor, așa că să le lăsăm să se maturizeze, iar noi înșine ne vom concentra pe problemele actuale. Pentru a injecta un X-DLL în tabelul de director de import, trebuie să adăugați o altă instanță a structurii IMAGE_IMPORT_DESCRIPTOR. Dar nu va funcționa chiar așa, pentru că imediat după sfârșitul tabelului de director de import, începe IAT-ul primei biblioteci dinamice și pur și simplu nu avem unde să ne strângem, cu excepția cazului în care, desigur, mutăm tabelul de director de import. in alt loc! Si ce?! Și ne vom transfera!

Repetăm ​​secvența de acțiuni descrisă cu hiew "ohm din nou, mergând la începutul tabelului de import (sau mai degrabă, după cum știm deja, la primul element al tabelului de director de import), apăsăm („asterisc” activat tastatură numerică) și, deplasându-vă cu tastele cursor, selectați 28h octeți în visiniu (dimensiunea tabelului de director de import). După aceea apăsăm din nou și prin apăsare , salvați blocul într-un fișier, numindu-l idt-org pentru definiție.

Acum, derulând fișierul, faceți clic Până ajungem în spațiul operațional spatiu liber, ocupat de un șir lung de zerouri. În cazul nostru, această locație este situată la 405810h, chiar după sfârșitul tabelului de import.

În continuare, trebuie să copiem tabelul de director de import original într-o nouă locație, amintindu-ne în același timp să rezervăm un loc pentru un element al structurii de tip IMAGE_IMPORT_DESCRIPTOR, în care vom plasa biblioteca noastră dinamică puțin mai târziu. Va fi inițializat chiar primul, ceea ce este foarte util pentru combaterea antivirusurilor care imunizează fișierele exe prin inocularea acestora cu un vaccin special dll care verifică integritatea conținutului imaginii fișierului executabil.

Deoarece, după cum puteți calcula cu ușurință, dimensiunea structurii IMAGE_IMPORT_DESCRIPTOR este de 14h octeți, iar zona nealocată începe la adresa 405810h, trebuie să mutam cursorul la adresa 405824h, apăsați , selectați 28 de ore (dimensiunea tabelului director de import original) și apăsați din nou, apoi asigurați-vă că mutați cursorul la începutul blocului selectat. Faceți clic pe următorul (Get Block), introduceți numele fișierului în care tocmai am salvat blocul - idt-org și citiți-l de pe disc.

Acum revenim la începutul fișierului și corectăm adresa RVA a tabelului de import, care în acest caz va fi 5824h. S-ar putea să aveți o întrebare: de ce 5824h și nu 405824h?! Da, pentru că adresele RVA se obțin scăzând adresa de bază (scrisă în antetul fișierului PE și în cazul nostru egală cu 400000h) din adresa virtuală (egale cu 405824h). Mai mult, ținând cont de ordinea de prioritate a octeților adoptată pe procesoarele x86 (biții mai mici sunt situați la adresele inferioare), trebuie să scriem 24 58, și nu 58 24, așa cum fac mulți hackeri începători, întrebându-ne de ce nu funcționează.

Deci, deschideți fișierul inject.exe în hiew "e, găsiți semnătura PE, mutați cursorul în jos cu 80 de ore de octeți, vedeți 84 54 acolo (vezi Figura 1), apăsați pentru a permite editarea, schimbați adresa la 24 58, salvați modificările prin și ieși... la o bere. Berea pentru hackeri este sacră!

Verificăm operabilitatea fișierului - ce se întâmplă dacă acesta a fost deteriorat?! Lansăm inject.exe și (dacă toate operațiunile au fost făcute corect) va apărea pe ecran un salut triumfător. În caz contrar, sistemul va refuza să descarce fișierul sau va arunca o excepție.

După ce am udat gâtul uscat, trecem la partea cea mai dificilă și cea mai importantă - completarea structurii IMAGE_IMPORT_DESCRIPTOR. Să începem prin a muta cursorul la sfârșitul tabelului de director de import, ajustându-l la adresa 405850h și să scriem numele funcției inactiv (dummy), care se termină cu zero și precedat de două zerouri, urmat de numele dinamicii injectate. biblioteca injected_dll.dll. Cu toate acestea, ordinea locației lor poate fi diferită, încărcătorul de sistem a fost de mult pus pe astfel de fleacuri.

După ce am făcut acest lucru, trecem la primul octet, rezervat anterior de noi pentru structura IMAGE_IMPORT_DESCRIPTOR, și începem să evocăm. Primul cuvânt dublu este lăsat egal cu zero. Este urmat de 4 octeți alocați pentru TimeDataStamp, iar noi, dorind să pervertim ușor, vom pune aici IAT, adică un cuvânt dublu care conține adresa RVA a funcției importate. În cazul nostru, această funcție se numește dummy, iar numele ei (precedat de două zerouri!) începe cu adresa RVA 5850h. Având în vedere ordinea inversă a octeților pe x86, scriem: 50 58. Sărim peste următorul cuvânt dublu (Forwarder Chain), în câmpul Name scriem adresa RVA a numelui bibliotecii dinamice injectate injected_dll.dll, în cazul nostru egală cu 5858h. Rămâne de completat ultimul câmp - Import Address Table, care conține adresa RVA a tabelului IAT pe care l-am plasat deasupra câmpului TimeDateStamp cu adresa RVA egală cu 5814h.

Asta, de fapt, este tot... După adăugarea unei noi structuri IMAGE_IMPORT_DESCRIPTOR la ​​matricea Import Directory Table, aceasta din urmă va arăta astfel:

PX XX :00 58 00 00-00 50 00 00-00 00 00 00-00 00 00 00 X -6D 6D 79 00-69 6E 6A 65-63 74 65 64 manechin injectat

Rămâne un fleac. Este necesar să reveniți la începutul fișierului, să numărați 80h octeți din antetul PE, să corectați indicatorul către tabelul de import de la 5824h la 5810h și să creșteți dimensiunea acestuia la 3h. Salvăm modificările făcute și, după ce am câștigat mai mult aer în piept, rulăm fișierul
injection.exe:

$inject.exe
Salut Lume!
Eu sunt nezumi
la revedere Lume!

Funcționează! Și nu numai că funcționează, ci și foarte bine. Biblioteca dinamică încorporată emite cu ascultare „bună, lume!” chiar înainte de lansarea fișierului - „drosophila” și „la revedere, lume!” chiar înainte de a se termina! Frumuseţe! Doar că... un DLL străin interferează foarte mult cu noi, provocând o dorință naturală de a-l împinge undeva departe. Și aici trecem fără probleme la a doua parte a poveștii noastre.

Copierea X-DLL în fluxul NTFS

Fişier sistem NTFS se compară favorabil cu FAT "dar prin faptul că acceptă fluxuri (fluxuri). Se mai numesc și atribute (atribute), dar pentru a nu le confunda cu atribute de doar citire, ne vom ține de primul termen. Fiecare fișier are cel puțin un flux fără nume, care stochează datele reale ale fișierului. Dimensiunea acestuia este cea care evidențiază Windows Explorer si avansat manageri de fișiere tastați FAR „a. Cu toate acestea, putem crea și fluxuri suplimentare, separându-le numele de numele fișierului cu două puncte („:”), de exemplu: fișierul_meu:fluxul_meu1, fișierul_meu:fluxul_meu2. Obișnuit Instrumente Windows nu acceptă lucrul cu fluxuri numite și, prin urmare, accesul la conținutul acestora nu este atât de ușor. Nu există o modalitate (standard) de a determina dacă fisierul dat fluxuri numite sau nu.

Simți unde merg? Să ascundem X-DLL în interiorul inject.exe, plasându-l într-un flux numit. Atenţie! Acest lucru nu este deloc același cu a lipi stupid două fișiere împreună, așa cum fac majoritatea joyners. Când copiați un X-DLL într-un flux NTFS, dimensiunea vizibilă a "Drosophila" nu crește, iar când deschideți fișierul inject.exe cu funcția fopen("inject.exe", "rb"), va exista să nu fie urme de X-DLL în el! Mai mult, atunci când transferați un fișier prin http pentru a fi verificat de un serviciu antivirus online, numai un flux nenumit (conținând program util fără X-DLL) și, desigur, antivirusurile nu vor detecta nimic în el. Apropo, majoritatea antivirusurilor scanează doar fluxul fără nume! Deci, X-DLL se poate simți relativ în siguranță, cald, uscat și confortabil.

Este clar aspectul? Apoi acționăm. Deschidem inject.exe în hiew "e, cu mișcarea obișnuită mergem la tabelul de import: , , , <стрелка «вниз»>, . Schimbăm numele bibliotecii dinamice injected_dll.dll în inject.exe:x.dll, unde inject.exe este numele fișierului experimental în care vom injecta X-DLL și x.dll este numele a bibliotecii dinamice injectate în sine.
Acum trebuie să copiați injected_dll.dll în inject.exe: x.dll, ceea ce este ușor de făcut folosind FAR "a. După ce ați ajustat cursorul la biblioteca dinamică injected_dll.dll, apăsați și scrieți „inject.exe:x.dll”. Toate! Odată ce copia este completă, originalul injected_dll.dll poate fi șters. Nu vom mai avea nevoie. Apropo, dimensiunea fișierului inject.exe nu a crescut cu un singur octet după ce a fost creat noul flux numit! Auditorii de disc (împreună cu alte sisteme de control) se odihnesc aici.

Acum lansăm fișierul inject.exe și ne asigurăm că performanța acestuia nu a fost afectată deloc ca urmare a ultimelor manipulări.

Trecerea de la teorie la practică

Implementarea propriei biblioteci dinamice este, desigur, foarte bună, dar, în practică, de multe ori trebuie să vă ocupați de ceea ce este necesar
injectați executabilul altcuiva. Ce să fac?! Convertiți-l într-un DLL?! Desigur că nu! Este suficient să modificăm ușor X-DLL-ul nostru, învățându-l să ruleze fișiere exe folosind funcția CreateFile API, în timp ce fișierele executabile în sine pot (și ar trebui) să fie plasate în fluxuri NTFS numite, al căror număr este de fapt nelimitat. Mai mult, dacă exe încorporat trage cu el biblioteci dinamice sau alte componente, acestea pot fi, de asemenea, încorporate în fluxuri NTFS (în mod firesc, acestea nu vor mai fi în directorul curent și, prin urmare, fișierul executabil va trebui editat pentru a schimba toate căile ). Dacă acest fișier este împachetat (și majoritatea utilităților de luptă, cum ar fi sistemele administrare la distanță sunt rareori disponibile în sursă deschisă), X-DLL-ul nostru poate intercepta funcțiile API CreateFile/LoadLibrary, ținând automat evidența acceselor la fișierele lipsă și alunecând fluxurile NTFS denumite corespunzătoare în locul lor.

Un alt punct important. Trimiterea unui fișier exe cu un X-DLL încorporat în el prin poștă, scrierea acestuia pe un disc laser sau orice alt mediu non-NTFS, pierdem toate fluxurile denumite, iar programul încetează imediat să funcționeze, jurând că nu poate găsi dll.

Situația pare critică, s-ar putea spune chiar dramatică, dar un om nobil vine în ajutor. Arhivatorul RAR, care are capacitatea unică de a salva toate fluxurile NTFS din fișier. Rulați RAR, selectați inject.exe, faceți clic pe butonul „Adăugați” (sau apăsați ), după care în proprietățile arhivei bifam caseta „Salvare fluxuri de fișiere” (fila „Avansat”). De asemenea, dacă doriți, puteți crea o arhivă SFX în cazul în care destinatarul nu are RAR, dar acestea sunt deja detalii tehnice.

Repetați procedura de trimitere a fișierului prin e-mailîncă o dată, despachetați arhiva rezultată, rulați inject.exe și... iată! El lucreaza!

Acoperiți-vă urmele (pentru băieți alfabetizați)

Unele fișiere (în special plin cu protectori) monitorizează cu scrupulozitate integritatea acestora și reacționează la o încercare de implementare, sincer, nu în mod adecvat. Cu toate acestea, deoarece X-DLL preia controlul înainte de restul, poate restabili tabelul de import în memorie ca și cum totul ar fi fost la fel, ca și cum nimeni nu l-ar fi atins. Pentru a face acest lucru, trebuie doar să apelați funcția API
VirtualProtect prin atribuirea atributului corespunzător regiunilor de memorie
PAGE_READWRITE, restaurați tabelul de import (al cărui original este ușor de salvat
X-DLL) și apoi resetați atributul PAGE_READONLY folosind același
VirtualProtect. Mai mult, X-DLL poate aloca un bloc de memorie din heap folosind funcția VirtualAlloc API și poate copia corpul acestuia acolo, care, desigur, trebuie să fie complet relocabil, adică să rămână funcțional indiferent de adresa de încărcare de bază. Apoi, rămâne doar să descărcați X-DLL care a devenit inutil apelând FreeLibrary (în cazul în care un mecanism dificil de verificare a integrității decide să listeze lista de module încărcate).
Mică nuanță tehnică: pe procesoare cu suport de biți
NX / XD, care interzice executarea codului în paginile de memorie care nu au atribute corespunzătoare, blocului de memorie alocat ar trebui să i se atribuie atributul
PAGE_EXECUTE_READWRITE. În caz contrar, dacă utilizatorul are DEP hardware activat pentru toate aplicațiile (nu doar componentele sistemului, așa cum se întâmplă în mod implicit), în loc să execute cod nativ, sistemul va arunca o excepție, iar execuția programului troian se va termina într-un mod de urgență.

Antetul fișierului PE are un câmp special care conține suma de control. În marea majoritate a cazurilor, este zero, dar dacă nu este, atunci după intervenția în tabelul de import, suma de control trebuie recalculată. Asta face utilitatea.
EDITBIT.EXE a fost lansat cu comutatorul „/RELEASE”. Este inclus ca standard Compilatorul Microsoft Vizual
Studio și în Platform SDK, deci nu ar trebui să fie probleme la găsirea acestuia.

Concluzie

Tehnologii încorporarea în fișiere executabile nu stați pe loc și evoluați împreună cu mecanismele de apărare și sistemele de operare. Problema eternă a sabiei și scutului - cine se va îmbunătăți primul. Folosind utilități gata făcute care funcționează pe deplin mod automat, în primul rând, deloc prestigios și, în al doilea rând, prea nesigur. Dezvoltatorii de antivirus nu își mănâncă pâinea degeaba! Pentru a nu fi ars de fleacuri, toate codurile X ar trebui scrise independent. Atâta timp cât există într-o singură copie, sistemele de apărare nu au nicio șansă să prevină un atac!

O zi bună tuturor, dragii mei cititori! Ca întotdeauna, Dmitry Kostin este cu tine, totul este neschimbat aici). Caut, mulți sunt interesați de cum să combinați două fotografii într-una singură în Photoshop. Se întâmplă doar că oamenii vor să facă o comparație, de exemplu, ÎNAINTE și DUPĂ, sau altceva.

Probabil ați văzut că atunci când oamenii își postează realizările de slăbit, ei postează și fotografii ÎNAINTE și DUPĂ combinate într-una singură. Apropo, la fel am făcut și când am scris. În general, astăzi voi arăta cum se poate face acest lucru cu ușurință. Așa că pocnește degetele și hai să mergem!

am vrut să-ți spun cel mai mult drumul rapid, dar am decis că nu ar trebui să mă repet, deoarece am vorbit deja despre asta într-o lecție despre . Se va dovedi că vei avea o fotografie în alta. Să ne concentrăm pe alte moduri.

Unirea a două imagini

În acest exemplu, am decis să îmbin fotografiile în stilul „Înainte și după”. Nu-mi spune că acești oameni nu se aseamănă. Sunt doi oameni diferiți.) În general, deschideți două fotografii în Photoshop și apoi în ordine. Am făcut fotografii cu două persoane: subțiri și în relief.

  1. Mai întâi, să facem imaginile la aceeași înălțime. Pentru a face acest lucru, fiind pe fiecare fotografie separat, accesați meniul „Imagine” - "Marimea imaginii". Uită-te la numărul de pixeli după înălțime. S-a dovedit că cel slab are 680 de pixeli, iar cel pompat are 1329.
  2. În acest caz, este mai bine să reduceți dimensiunea imaginii schimbate la 680 de pixeli în înălțime pentru a le echivala și a nu pierde calitatea. Știi cum se face? Dacă nu, atunci ne uităm la articolul meu despre (deși totul ar trebui să fie clar oricum). Și apropo, amintiți-vă de dimensiunea orizontală a imaginii de pitch. Am primit 487.
  3. Acum mergi la fotografia slabă și revino la meniul „Imagine”, doar că de data aceasta alege „Dimensiunea pânzei”. Aici pur și simplu vom mări suprafața de lucru fără a crește fotografia în sine. Deci dimensiunea orizontală a unei fotografii slabe este de 453 de pixeli. Adăugați mental 487 de pixeli (dimensiunea orizontală a fotografiei de pitch) și obțineți 940. Acesta este numărul pe care îl scriem în celula de lățime. În același timp, nu schimbăm înălțimea și lăsăm 680.
  4. Acum trebuie să alegem pe ce parte vor apărea acești noi 487 de pixeli suplimentari pe orizontală. Dacă o lăsăm așa cum este, atunci pânza va crește pe ambele părți cu 243 și 244 pixeli (487/2). Dar vrem să facem un „Înainte și După”, ceea ce înseamnă că persoana slabă ar trebui să fie în stânga, de unde și bucata goală de pânză din dreapta. Apoi, în locație, faceți clic pe săgeata din stânga pentru a muta centrul spre stânga. puteți alege și o culoare de fundal, dar în cazul nostru nu este necesar, orice va face, deoarece oricum o vom închide. Apoi faceți clic pe OK.
  5. Vedea? Acum avem o bucată uriașă de fundal alb. Acum mergeți la fotografia pompat, luați instrumentul „Mutare”, țineți apăsat butonul din stanga dați clic pe fotografie și trageți-o în fila cu fotografia slabă.
  6. E o chestiune de mic. Rămâne să mutați fotografia direct la fundal alb. Am calculat cu precizie lățimea și am reglat înălțimea, astfel încât totul să se potrivească exact.

Iată o astfel de simplă și calea ușoară combina două imagini).

Fuzionarea cu o tranziție lină

Există un alt efect interesant atunci când trecerea de la o fotografie la alta este lină. Permiteți-mi să fac asta folosind exemplul a două animale: un leu și o saiga.

  1. Deschideți imaginea leului și saiga în editorul nostru, dar în file diferite.
  2. Accesați stratul de leu și selectați .
  3. Acum selectați și asigurați-vă că tranziția este de la negru la alb. Și acum, cu acest gradient, trageți o linie aproximativ în mijloc, așa cum se arată în imaginea mea.
  4. Aveți o parte a imaginii cu un leu ar trebui să fie pictată cu o tentă roșie. Grozav. De asta avem nevoie. Acum uitați-vă la panoul de straturi și la nostru strat activ cu un leu. Este el principalul? Acestea. are o lacăt pe el? Dacă da, atunci faceți clic pe el cu butonul stâng al mouse-ului, astfel încât să dispară, altfel pur și simplu nu vom putea edita acest strat.
  5. Acum eliminați modul rapid de mască făcând clic din nou pe pictograma acestuia. Va trebui să evidențiați o parte a imaginii cu o linie punctată. Apoi apăsați tasta ȘTERGEși asigurați-vă că conținutul merită „Conștient de conținut”, apoi apăsați OK. Ar trebui să eliminați partea dreaptă a imaginii și cu o tranziție lină și transparentă. Doar deselectați (doar faceți clic o dată cu orice instrument de selecție, cum ar fi o zonă dreptunghiulară).
  6. Acum mergeți la fila cu saiga (la naiba, animalul și numele sunt încă amuzante). Este de dorit să se compare înălțimea (în pixeli) a acestor două imagini, ca în exemplul anterior. Acum luăm instrumentul „Mutare” și tragem bietul saiga direct la leu.
  7. Și acum trucul (glumesc, desigur că acesta nu este un truc). Ținem stratul cu saiga pe panoul de straturi (săracul animal, îl ținem din nou) cu butonul stâng al mouse-ului, după care îl tragem în jos, astfel încât să fie sub leu.
  8. Vezi ce sa întâmplat? Regele fiarelor și antilopa sunt combinate într-o singură fotografie. Misto! Puteți muta puțin antilopa folosind „Mutați”. Ne uitam. O tranziție lină a reușit. A ieșit destul de bine după părerea mea. Drăguț și discret.

Ei bine, în general, așa ceva.

Desigur, este Photoshop. Și există încă multe moduri de a combina mai multe fotografii într-una singură. Dar cred că, pentru început, aceste metode îți vor fi destul de suficiente. Mai mult, în ultima versiune, nu am legat doar 2 imagini într-una, ci am făcut un simplu colaj, adică. utilizați mai multe imagini diferite într-una singură.

Apropo, dacă doriți să faceți colaje uimitoare, atunci vă recomand cu căldură să vizionați excelent curs pe acest subiect. Numeroase exemple au fost luate în considerare cu atenție. Din câteva imagini simple, veți învăța cum să faceți capodopere, așa că mergeți mai departe!

Cu stimă, Dmitri Kostin.

Salutare tuturor! Astăzi vom lua în considerare un astfel de subiect, cum se conectează două computere. Și vă voi arăta 2 moduri. Deci, să începem.

Luați în considerare 2 moduri:

  1. Cum se conectează 2 computere cu folosind Wi-Fi router sau comutator.
  2. Conectați cu fir.

Îmi voi conecta laptopul (acest articol este potrivit și pentru a răspunde la întrebarea: cum să conectez două laptopuri unul la altul). Dispozitive cu sistem de operare Windows 8.1 și un computer care rulează Windows 7.

1. O modalitate de a conecta două computere folosind, bine, sau un comutator.

Cine are un router sau un comutator, conectarea a două computere este de 2 ori mai ușoară. Chiar dacă ai hotspot wifi, indiferent dacă ați conectat computerul printr-un cablu sau fără fir Conexiune Wi-Fi nu contează. Acesta este același, principalul lucru este că subrețeaua este aceeași (de exemplu, 192.168. 1 .*)

Mai întâi trebuie să verifici asta grup de lucru a fost la fel, altfel al doilea computer nu îl va vedea pe primul. Accesați panoul de control și selectați sistem.

Și schimbăm numele. Principalul lucru este că acest nume ar trebui să fie același pe toate computerele!

Deci, pentru a conecta computere, accesați panoul de control și selectați grupul de acasă.

Unii oameni cred că conexiunile prin cablu și Wi-Fi sunt două lucruri diferite. Prin urmare, pentru a distruge mitul cum să conectați două computere unul la altul prin wifi, Am decis să mă conectez prin Wi-Fi și să fac același lucru.

Mergem în ordine.

Oferim acces la fișierele necesare.

Toți, v-ați alăturat grupului.

Faceți clic pe modificare Opțiuni suplimentare acces general.

Și selectați toate articolele ca ale mele:

Toate. Acum verificăm. Creăm un folder, de exemplu, l-am creat pe desktopul unui laptop (care este conectat prin wi-fi).

Scriem totul, sau utilizator specific, apoi putem pune ceea ce are voie și faceți clic pe partajare.

În setările avansate, bifați caseta și faceți clic pe ok. Dacă aveți nevoie de drepturi extinse, atunci butonul extins.

Acum verificăm. În computer, apăs pe start, trec în rețea. Și îmi văd laptopul (nu m-am deranjat).

Intrăm și vedem folderul pe care l-am creat în laptop.

2 moduri de a conecta două computere prin cablu (cablu de rețea)

Fără un router, puteți conecta doar 2 computere ... Desigur, dacă adăugați o placă de rețea la fiecare computer, atunci mai multe, dar acesta este deja un fel de tablă... Vom conecta două computere folosind un cablu.

În general, conectăm cablul la 2 computere, la card de retea. Apoi, accesați centrul de control al rețelei și acces public- Schimbă setările adaptorului. La conexiune de către retea locala selectați proprietatea. Găsim versiunea de protocol 4 și aceeași proprietate. Sarcina noastră este să părăsim aceeași subrețea, iar adresa computerului poate fi oricare. Pe un computer am setat adresa 192.168.1.1, iar pe celălalt 192.168.1.2. Masca este standard 255.255.255.0.

Apasam ok, pe 2 calculatoare si mergem in retea si verificam.

Vedem rezultatul.

De asemenea, dacă nu funcționează, faceți setările din prima metodă. Am făcut-o imediat după ei, prin urmare, lucrează.

Verificați dacă firewall-ul sau firewall-ul din antivirus (dacă există) se blochează.

Și, de asemenea, atunci când intrați online, poate apărea un semn în partea de sus, dacă permiteți accesul fișierelor rețea comună. Apăsăm da.

Salutări, dragi oaspeți și cititori ai blogului! Continuăm rubrica noastră „Computer și Internet pentru Dummies”. Sarcina noastră este să combinăm rapid două fotografii diferite fără a descărca aplicații terță parteși neavând abilitățile de a lucra în editori foto.

Indiferent dacă lucrați pe un computer sau utilizați acest dispozitiv pentru divertisment, în orice caz, poate fi necesar să combinați două imagini într-una singură pentru a rezolva unele dintre problemele dvs.

De exemplu, colaborezi și folosești produse care vă ajută corpul să se transforme. În acest caz, sunteți fotografiat înainte de a utiliza produsul și după ceva timp - după ce îl utilizați.

Apoi, este nevoie să combinați două fotografii într-una și să adăugați text pentru a atrage potențiali parteneri și clienți în afacere în acest fel. Aici vine în ajutor aplicația standard Paint, care este în fiecare versiuni Windows, sau cel puțin în majoritatea dintre ele.

Cum să lipiți două fotografii împreună în aplicația standard Paint

Poate că până în acest moment nici nu bănuiai că există o aplicație pe computerul tău care poate face față sarcinii de a conecta două fotografii. Nici eu nu am aflat imediat despre asta la un moment dat, ci abia după un timp, când am învățat deja cum să lucrez în programe terțe.

Dar să trecem la treabă. Pentru a găsi rapid aplicația Paint pe computer, trebuie să deschideți căutarea în colțul din stânga jos. În funcție de versiunea de Windows, locația de căutare poate diferi. Vă arăt exemplul de Windows 10.

Deschideți căutarea și scrieți numele programului. Computerul vă va oferi rezultatul dorit în partea de sus. Faceți clic pe pictogramă și lansați aplicația.

Acum trebuie să încărcați prima fotografie pentru a o edita. În colțul din stânga sus al programului, faceți clic pe „Fișier”, apoi pe „Deschidere”.

După aceea, se va deschide o fereastră pentru alegerea locației fotografiei. Găsiți fotografia dorită și faceți clic pe ea. Dacă fotografia este prea mare, atunci îi puteți reduce scara în dreapta jos cu ajutorul cursorului.

După ajustarea scalei, trebuie să tăiați excesul. Pentru a face acest lucru, accesați bara de instrumente de sus și faceți clic pe „Selectați”, apoi selectați „Zona dreptunghiulară”.

Apare un marcator de selecție. Acum trebuie să țineți apăsat butonul stâng al mouse-ului și fără a-l elibera, trageți marcatorul de sus în jos și în lateral, selectând astfel zona pe care vrem să o părăsim.

Apoi, în partea de sus a panoului, faceți clic pe „Decupați”.

Acum avem o fotografie decupată care trebuie salvată.

Trecem la deja familiar „Fișier”, selectăm „Salvare ca”, apoi selectăm formatul necesar. De obicei aleg imaginea JPEG.

Programul vă va solicita să alegeți o locație pentru salvare și, de asemenea, puteți specifica un nume de fișier.

După ce ați salvat prima fotografie, chiar pe ea trebuie să o deschideți pe a doua exact în același mod „Fișier”, „Deschidere” și micșorați dacă este necesar.

Apoi, ca și în prima fotografie, o decupăm. „Selectați” - „Zona dreptunghiulară” - „Decupare”.

Acum, pe fotografia pregătită, trebuie să creați un loc pentru a doua fotografie. Pentru a face acest lucru, deplasați cursorul la marginea dreaptă a fotografiei și țineți apăsat butonul stâng al mouse-ului și întindeți pânza la aproximativ dimensiunea dorită. Este în regulă dacă ne întindem mai mult, atunci putem repara.

Acum trebuie să plasați prima fotografie în partea dreaptă a pânzei goale. Pentru a face acest lucru, mergeți în colțul din stânga sus al programului și faceți clic pe „Insert” și selectați „Insert from” din lista drop-down.

Se va deschide o fereastră de selecție. Selectați o fotografie salvată anterior făcând clic pe ea cu mouse-ul.

Dacă combinați fotografii de diferite formate și dimensiuni, atunci puteți ajusta dimensiunea făcând clic pe „Redimensionare” din partea de sus, apoi selectați scara în procente sau pixeli.

În acest caz, prima fotografie procesată este mai mică. Trageți-l cu mouse-ul în partea dreaptă și selectați dimensiunea.

Când am ajustat dimensiunea, setăm a doua fotografie exact cu prima și „împingem” pânza goală rămasă spre dreapta în același mod în care am împins-o afară, adică ținând marcatorul cu butonul stâng al mouse-ului. Dacă nu aveți nevoie de nimic altceva, atunci salvați fotografia exact așa cum ați salvat-o pe prima.

Dacă aveți nevoie de text pe fotografie, atunci faceți următoarele. Am pus înainte o fâșie de pânză curată în partea de jos cu mouse-ul. Apoi, pe panoul din partea de sus, selectați instrumentul TEXT făcând clic pe litera majusculă.

Apoi faceți clic stânga pe pânza goală de mai jos. Deschide opțiunile de text pe care le puteți personaliza. Alegeți dimensiunea, culoarea fontului, stilul și apoi scrieți textul dorit. Pentru a reduce dimensiunea câmpului de introducere, după ce ați scris textul, pur și simplu ajustați-l cu mouse-ul trăgând marcatorii.

Pentru a muta textul în locul potrivit, deplasați cursorul mouse-ului până la margine până când apare cursorul cu patru săgeți. Când a apărut cursorul, țineți apăsat butonul din stânga și mutați textul.

În acest fel, puteți adăuga mai multe câmpuri cu text și le puteți plasa în locurile potrivite. Rezultatul lucrării poate fi o astfel de compoziție asamblată din două fotografii.

Asta e tot pentru mine. Sper că articolul „Cum să combini două fotografii într-una singură fără Photoshop” ți-a fost de folos. Cel mai bun sprijin pentru mine este al tău Părere. Mult succes si prosperitate pentru tine!

Cum să îmbine două fotografii într-una singură fără Photoshop actualizat: 5 august 2019 de: Ruslan Osharov

Primul lucru pe care trebuie să-l facem este să deschidem ambele imagini în Photoshop. Deschid întotdeauna imagini în ferestre separate.

Acum trebuie să știm înălțimea fiecărei imagini. Acest lucru se poate face folosind comanda Image Size (Ctrl + Alt + I), dar există o modalitate mai bună. În partea de jos a ferestrei de lucru a documentului, puteți configura afișarea dimensiunii documentului, cum să faceți acest lucru, am arătat-o ​​în figură:

Așa că văd că înălțimea fotografiei peisajului este de 2380px.

Să aruncăm o privire la imaginea portret:

Înălțimea sa este de 3200 de pixeli.

Prin urmare, reducem înălțimea imaginii portret folosind comanda „Dimensiunea imaginii”. Apăsați combinația Ctrl + Alt + I și introduceți valoarea 2380 în fereastra „Înălțime”:

Acum, înălțimea ambelor imagini este aceeași.

Notă. Captura de ecran a casetei de dialog „Dimensiunea imaginii” este din versiunea CC, în versiunea CS6, trebuie să bifați opțiunea „Reeșantionare imagine” și să o reduceți în modul „Bicubic Automatic”



Se încarcă...
Top