Kombináljon két fényképet. Két fénykép művészi kombinációja egyben

A hackerek gyakorlatában gyakran felmerül az igény
ágyazza be a kódot a kész exe fájlba(nem feltétlenül rosszindulatú), így először kapja meg az irányítást, ne okozzon visszaélést a vírusirtókkal, és általában a lehető legtitkoltan viselkedik, anélkül, hogy feltűnő lenne. Hogyan kell csinálni? Tudjuk, hogyan kell, és most részletesen elmagyarázzuk Önnek.

A segédprogramok egész családja több program egy fájlba ragasztására szolgál, „joiners” általános névvel (az angol „joiner” - „connector” szóból):
Joiner by Blade, Pillanatragasztó, MicroJoiner, Juntadorés sokan mások. Az övék részletes áttekintés megtalálható a "" cikkben. A ragasztás minősége azonban sok kívánnivalót hagy maga után. A legtöbb asztalos egyszerűen elhelyezi a beágyazott fájlt a fő exe fájl átfedésébe, és indításkor lemezre másolja egy ideiglenes mappába, vagy még gyakrabban a Windows rendszerkönyvtárába, ahová egy egyszerű felhasználó, aki nem rendszergazda. természetesen nem rendelkezik írási joggal, és a műveletet réz medencével fedik le. Mindenesetre a másolás eltart egy ideig, lelassítja a programok betöltését, ami homályos gyanút kelt a felhasználó fejében.

A fejlettebb asztalosok ezen az elven dolgoznak
futtatható fájlcsomagolókés a beágyazott exe-t közvetlenül a működőbe vetítjük
memória, amely nemcsak felgyorsítja a betöltést, hanem a PE formátum szempontjából sokkal jobban is néz ki
politikailag korrekt (ritkaságnak számít az „őszinte” fedvényes PE-fájl).
Azonban kivétel nélkül minden örömteli ember előbb-utóbb beleesik víruskereső adatbázisok, mivel kész segédprogramokról van szó, amelyekben könnyen azonosítható az állandó aláírás (még akkor is, ha polimorf alapon készültek).

A megfelelő hackerek nem viselkednek így, és maguk ragasztják össze a programokat. És egyáltalán nem nehéz! Csak egy hűséges barátra és minimális C programozási készségre van szüksége. Mielőtt azonban szarvánál fognánk a bikát, tegyünk egy fontos pontosítást. A beinjektált kódnak nem kell vírusnak, féregnek, rootkitnek vagy bármilyen más rosszindulatú fertőzésnek lennie, ezért a félreértések elkerülése érdekében X-kódnak nevezzük.

Hogyan tovább?

Minden exe fájl importál egy vagy több dinamikus könyvtárat (Dynamic Link Library vagy röviden DLL), amelyek az importálási táblázatban szerepelnek. Egy exe fájl indításakor a rendszerbetöltő elemzi az import táblát, betölti az abban felsorolt ​​összes dinamikus könyvtárat, meghívva a DllMain függvényt, hogy inicializálja az egyes DLL-eket, és csak ezt követően adja át a vezérlést az eredeti belépési pontnak (Original Entry Point, ill. OEP röviden) az elindított exe fájl .

Így, ha a kísérleti exe fájl import táblájához hozzáadjuk a saját DLL-t, akkor az X-kód beillesztés problémája sikeresen megoldódik. A legfigyelemreméltóbb az, hogy a DLL bármilyen nyelven írható (még assembly nyelven is, DELPHI-ben is), és teljesen ellenálló a vírusirtókkal szemben, mivel azok organikusan nem képesek felismerni egy ismeretlen fertőzést. Ó igen... Heurisztikus elemzők. De ezeket a dolgokat nagyon könnyű megkerülni (ami sok cikk témája, beleértve az enyémet is, amely megtalálható a
http://nezumi.org.ru).

Felkészülés a kísérletekre

Mielőtt belemélyedne a PE-fájlok alapvető szerkezetébe, jó ötlet, ha alapos ismereteket szerez annak működéséről. Az MSDN tartalmaz egy specifikációt a PE formátumhoz („Microsoft Portable Executable and Common Object File Format Specification”), amely egy számunkra ellenséges nyelven íródott. angol nyelvés elsősorban a becsületes programozókat célozza meg. A Myshchkh ezt a hibát úgy javította ki, hogy lefordította a specifikációt oroszra, és a hackerekre összpontosította. Digitális másolat ingyenesen letölthető a címen
http://nezumi.org.ru/souriz/PE-desc-n-inject.zip
és lemezen a magazinba.

Ok, most készítsünk elő egy „drosophilát”, amelyet az X kód megvalósítására terveztek. Az alábbiakban látható egy példa rá, C-ben írva:

#beleértve main() ( printf("I"m nezumi\n"); //megjelenít valamit a képernyőn }

Bármilyen megfelelő fordítóval lefordítjuk (például abban az esetben Microsoft Visual C++ parancs sorígy fog kinézni: „$cl.exe inject.c”). Ezt követően létrejön a lemezen az inject.exe fájl, amely indításkor a következő üdvözlést jeleníti meg a képernyőn (kérjük, vegye figyelembe, hogy ez egy konzolprogram, amelyet a FAR-ból vagy a szabványos cmd.exe parancsértelmezőből kell elindítani; amikor Intézőből elindítva a konzolablak automatikusan bezárul a program lejárta után, és nem látunk farkat):

$inject.exe
Nezumi vagyok

Miután foglalkoztunk a „drosophilával”, elkészítünk egy dinamikus könyvtárat, vagyis azt az X kódot, amelyet az inject.exe-ben fogunk megvalósítani. A legegyszerűbb esetben forrásígy fog kinézni:

#beleértve #beleértve // ál-exportált függvény létrehozása, // amelyet aztán a „Drosophila” fog importálni__declspec(dllexport) int dummy())( return 0;) /*belépési pont egy dll-hez, amely különféle körülmények között átveszi az irányítást*/ BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) ( //üdvözlő üzenet jelenik meg, mielőtt a Drosophila elindulnaif (fdwReason==DLL_PROCESS_ATTACH) printf("hello,világ!\n"); //üdvözlő üzenet nyomtatva, mielőtt Drosophila kilépif (fdwReason==DLL_PROCESS_DETACH) printf("viszlát,világ!\n"); )

Kérjük, vegye figyelembe, hogy a DllMain, az EntryPointtal ellentétben, többször is meghívásra kerül: a) folyamathoz való csatlakozáskor; b) amikor egy folyamat befejeződik vagy egy dinamikus könyvtárat a FreeLibrary API funkcióval töltenek ki; c) amikor egy folyamat új szálat hoz létre; d) a meglévő folyamatszálak egyikének befejezésekor. Más szóval, a DllMain lehetővé teszi bizonyos rendszeresemények figyelését és azokra való megfelelő reagálást. Ebben az esetben a "hello, world!" a „Drosophila” és a „viszlát, világ!” elindítása előtt. mielőtt befejezte a munkáját.

A dinamikus könyvtár összeállítása a következőképpen történik: „$cl.exe injected_dll.c /LD”, ahol az „/LD” kapcsoló közli a fordítóval, hogy DLL-t kell generálni, nem pedig EXE-t (ahogyan ez történik alapértelmezett).

X-DLL befecskendezése a Drosophila importtáblájába

Belevesszük a gereblyéző mancsainkat, megnyitjuk az inject.exe fájlt, majd hexa üzemmódba lépünk , megnyomjuk a PE fejléc megjelenítéséhez kattintson a gombra (Dir) és az egyéb IMAGE_DATA_DIRECTORY elemek közül válassza ki az import szakaszt (Import), amely esetünkben az 5484h RVA címen található, és teljes 28 órás bájt szélességben (lásd 1. ábra).

Kulcs elvezet minket az Import Directory Table szerkezethez, amelyről egy kicsit később fogunk beszélni. Addig is beszéljük meg, hogyan találhatunk mutatót az Import Directory Table-ra hiew hiányában.

A PE-fejléc elejétől 80 órás eltolásnál elhelyezkedő kettős szó (a PE-aláírással vizuálisan könnyen azonosítható) az RVA-cím, amely az Import Directory Table-ra mutat, és a következő kettős szó tárolja a méretét. Tehát a táblázat után nézni
a hiew importálása teljesen opcionális.

Az importtábla meglehetősen összetett hierarchikus struktúra. A hierarchia tetejét az Import Directory Table struktúra foglalja el, amely tulajdonképpen az IMAGE_IMPORT_DESCRIPTOR típusú alárendelt struktúrák tömbje, amelyek mindegyike tartalmaz egy RVA-mutatót a betöltött dinamikus könyvtár nevére, valamint hivatkozásokat az OriginalFirstThunk és a FirstThunk fájlokra a az importált függvények nevei/sorszámai (és az OriginalFirstThunk mező nem kötelező, és egyenlő lehet nullával). Két másik mező - a TimeDateStamp (időbélyegző) és a ForwarderChain (továbbítás) - szintén nem kötelező, ezért a saját DLL-ünk csatlakoztatásához az IMAGE_IMPORT_DESCRIPTOR struktúrából csak két mezőt kell kitöltenünk: Name és FirstThunk, valamint import címtáblázatot kell létrehoznunk. (rövidítve IAT) , legalább egy nevet importálva (ebben az esetben
színlelt).

typedef struct _IMAGE_IMPORT_DESCRIPTOR ( union ( duplaszó jellemzők; //0 a null import leíró befejezéséhezDWORD OriginalFirstThunk; // RVA az eredeti, kötetlen IAT-hoz); DWORD TimeDateStamp; // TimeDateStamp DWORD ForwarderChain; // -1 ha nincs továbbító DWORD Név; // a dll DWORD neve FirstThunk; // RVA to IAT ) IMAGE_IMPORT_DESCRIPTOR;

Ha a struktúrák harmonikus hierarchiája helyett rendetlenség alakult ki a fejünkben, ne aggódjon - ez normális! Fokozatosan rendeződik, és minden szerkezet a helyére kerül, úgyhogy hagyjuk őket beérni, és koncentráljunk az aktuális problémákra. Az X-DLL beágyazásához az Import Directory Table-ba, hozzá kell adnia az IMAGE_IMPORT_DESCRIPTOR szerkezet egy másik példányát. De ezt nem lehet csak úgy megtenni, mivel az Import Directory Table vége után azonnal megkezdődik az első dinamikus könyvtár IAT-ja, és egyszerűen nincs hova szorítani, hacsak természetesen nem mozgatjuk a Importálja a címtártáblázatot más helyre! És akkor?! És újratervezzük!

A leírt műveletsort ismételjük meg ismételten az importálási tábla elejére lépve (vagy inkább, mint már tudjuk, az Import Directory Table első elemére), nyomja meg ("csillag" be van kapcsolva numerikus billentyűzet), majd a kurzorbillentyűkkel mozgatva jelölje ki a 28h bájtot bordó színnel (az Import Directory Table mérete). Ezt követően megnyomjuk újra és megnyomja , mentse el a blokkot egy fájlba, és az egyértelműség kedvéért nevezze el idt-org-nak.

Most a fájlban görgetve kattintson a gombra Amíg el nem érjük az üzemi teret szabad hely egy hosszú nullasor foglalta el. Esetünkben ez a hely a 405810h számon található, közvetlenül az importtábla vége után.

Ezután át kell másolnunk az eredeti Import Directory Table-t egy új helyre, nem felejtve el helyet foglalni egy IMAGE_IMPORT_DESCRIPTOR típusú szerkezeti elem számára, amelybe kicsit később helyezzük el dinamikus könyvtárunkat. Első lépésként inicializálásra kerül, ami nagyon hasznos az exe-fájlokat immunizáló vírusirtókkal szemben, amelyek speciális dll-oltóanyag befecskendezésével ellenőrzik a végrehajtható fájlkép tartalmának integritását.

Mivel az IMAGE_IMPORT_DESCRIPTOR struktúra mérete 14h bájt, és a fel nem osztott terület a 405810h címen kezdődik, a kurzort a 405824h címre kell mozgatnunk, nyomja meg a gombot. , válassza ki a 28 órás bájtot (az eredeti Import Directory Table mérete), majd kattintson ismét, majd ügyeljen arra, hogy a kurzort a kiválasztott blokk elejére mozgassa. Következő kattintás (Get Block), írja be annak a fájlnak a nevét, amelyben a blokkot elmentettük - idt-org, és olvassa el a lemezről.

Most visszatérünk a fájl elejére, és beállítjuk az import tábla RVA címét, amely ebben az esetben 5824h lesz. Kérdésed lehet: miért 5824h és nem 405824h?! Igen, mert az RVA-címeket úgy kapjuk meg, hogy kivonjuk az alapcímet (amely a PE-fájl fejlécében van, és esetünkben egyenlő 400000h-val) a virtuális címből (egyenlő 405824h-val). Sőt, figyelembe véve az x86-os processzorokon elfogadott bájt elsőbbségi sorrendet (a legkisebb jelentőségű bitek kisebb címeken találhatók), 24 58-at kell írnunk, nem pedig 58 24-et, ahogyan sok kezdő hacker teszi, és vajon miért nem munka.

Tehát nyissa meg az inject.exe fájlt itt, keresse meg a PE aláírást, mozgassa a kurzort a 80 órás bájtig, lásd: 84 54 ott (lásd 1. ábra), kattintson a szerkesztés engedélyezéséhez módosítsa a címet 24 58-ra, a változtatásokat mentse el és kimegyünk... sörözni. A hackerek söre szent!

Ellenőrizzük a fájl működőképességét – mi van, ha megsérült?! Elindítjuk az inject.exe-t, és (ha minden műveletet helyesen hajtottak végre) egy diadalmas üdvözlet jelenik meg a képernyőn. Ellenkező esetben a rendszer megtagadja a fájl letöltését, vagy kivételt dob.

Miután megnedvesítettük száraz torkunkat, folytatjuk a legnehezebb és legfontosabb részt - az IMAGE_IMPORT_DESCRIPTOR szerkezet kitöltését. Kezdjük azzal, hogy mozgassuk a kurzort az Import Directory Table végére, vigyük a 405850h címre, és írjuk fel a dummy függvény nevét, amely nullára végződik, és előtte két nulla, majd a beinjektált dinamikus könyvtár neve. , injected_dll.dll. Elrendezésük sorrendje azonban más lehet, a rendszerbetöltő már régen nem figyelt az ilyen apróságokra.

Miután ezt megtettük, áttérünk az első bájtra, amelyet korábban az IMAGE_IMPORT_DESCRIPTOR struktúra számára lefoglaltunk, és elkezdjük varázsolni. Az első kettős szó nullával egyenlő. Utána jön a TimeDataStamp-re lefoglalt 4 bájt, és mi, kicsit perverzkedni akarva, ide adjuk hozzá az IAT-t, vagyis az importált függvény RVA címét tartalmazó dupla szót. Esetünkben ezt a függvényt dummy-nek nevezzük, és neve (előtte két nulla!) az 5850h RVA címmel kezdődik. Figyelembe véve a fordított bájtsorrendet x86-on, ezt írjuk: 50 58. A következő kettős szó (Forwarder Chain) kihagyása után a Név mezőbe írjuk be a beinjektált dinamikus könyvtár nevének RVA címét injected_dll.dll, eset egyenlő 5858h. Marad az utolsó mező kitöltése - Címtábla importálása, amely tartalmazza az IAT tábla RVA-címét, amelyet a TimeDateStamp mező tetejére helyeztünk 5814h RVA-címmel.

Valójában ennyi... Miután hozzáadta az új IMAGE_IMPORT_DESCRIPTOR szerkezetet az Import Directory Table tömbhöz, az utóbbi így fog kinézni:

00405810:00 00 00 00-50 58 00 00-00 00 00 00-58 58 00 00 PX XX .00405820:14 58 00 00 AC 54 00 000-000 m T .00405830 : 00 58 00 00-00 50 00 00-00 00 00 00-00 00 00 00 00 x p.00405840: 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00 00 00 64 75-6d 6d 79 00-69 6E 6A 65-63 74 65 64 bábu injektált .00405860:5F 64 6C 6C-2E 64 6C 6C-00 00 00 00-00 00 00 00 _dll.

Ami marad, az puszta apróság. Vissza kell térnünk a fájl elejére, meg kell számolnunk 80h bájtot a PE fejlécből, az import táblára mutató mutatót 5824h-ról 5810h-ra javítva és a méretét 3Ch-ra növelve. Elmentjük az elvégzett változtatásokat, és miután több levegőt szívtunk a mellkasunkba, elindítjuk a fájlt
inject.exe:

$inject.exe
Helló Világ!
Nezumi vagyok
Viszlát világ!

Működik! És nem csak működik, hanem nagyon jól is működik. A megvalósított dinamikus könyvtár engedelmesen megjeleníti a „helló, világ!” még mielőtt elindítaná a „drosophila” fájlt és a „viszlát, világ!” még mielőtt véget ér! Szépség! De... az idegen DLL nagyon zavar minket, természetes vágyat váltva ki, hogy valahova távolabb toljuk. És itt simán áttérünk történetünk második részére.

X-DLL másolása NTFS adatfolyamba

Fájl NTFS rendszer abban különbözik a FAT-tól, hogy támogatja az adatfolyamokat. Ezeket attribútumoknak is nevezik, de azért, hogy ne keverjük össze őket az írásvédett attribútumokkal, minden fájlnak van legalább egy névtelen adatfolyama, amely az aktuálisat tárolja a fájl mérete jelenik meg. Windows Intézőés haladó fájlkezelőkÍrja be a FAR-t, de létrehozhatunk további adatfolyamokat is, ha elválasztjuk a nevüket a fájlnévtől kettősponttal (":"), például: my_file:my_stream1, my_file:my_stream2 Windows eszközök nem támogatja az elnevezett adatfolyamokkal való munkát, ezért nem olyan egyszerű elérni a tartalmukat. Nincs (szokásos) módszer annak meghatározására, hogy ez a fájl elnevezett patakok vagy sem.

Érzed, hova megyek ezzel? Rejtsük el az X-DLL-t az inject.exe-ben, helyezzük el egy elnevezett adatfolyamba. Figyelem! Ez egyáltalán nem ugyanaz, mint két fájl hülye összeragasztása, ahogy a legtöbb joyner teszi. X-DLL NTFS adatfolyamba másolásakor a „drosophila” látszólagos mérete nem növekszik, és ha az inject.exe fájlt fopen("inject.exe", "rb") függvénnyel nyitják meg, akkor nem lesz X-DLL jelenlétének nyomai benne! Ezen túlmenően, ha egy fájlt http-n keresztül továbbít egy online víruskereső szolgáltatás általi vizsgálat céljából, csak egy névtelen adatfolyam (amelyet tartalmaz hasznos program X-DLL nélkül), és természetesen a víruskeresők nem észlelnek benne semmit. Egyébként a legtöbb vírusirtó csak a névtelen szálat vizsgálja! Tehát az X-DLL viszonylag biztonságosnak, melegnek, száraznak és kényelmesnek érezheti magát.

Világos a menetrend? Akkor cselekedjünk. Nyissa meg az inject.exe fájlt itt, és lépjen az importálási táblára a szokásos módon: , , , <стрелка «вниз»>, . Az injected_dll.dll dinamikus könyvtár nevét inject.exe-re változtatjuk: x.dll, ahol az inject.exe annak a kísérleti fájlnak a neve, amelybe az X-DLL-t beszúrjuk, az x.dll pedig a maga a dinamikus könyvtár, amelyet be kell injektálni.
Most át kell másolnia az injected_dll.dll fájlt az inject.exe:x.dll fájlba, ami egyszerűen megtehető a FAR használatával. Vigye a kurzort az injected_dll.dll dinamikus könyvtárra, és kattintson és írja be: „inject.exe:x.dll”. Minden! A másolás befejezése után az eredeti injected_dll.dll dinamikus hivatkozási könyvtár törölhető. Többé nem lesz rá szükségünk. Az inject.exe fájl mérete egyébként egy bájttal sem nőtt egy új nevű folyam létrehozása után! A lemezes auditorok (más vezérlőrendszerekkel együtt) csak pihennek itt.

Most futtatjuk az inject.exe fájlt, és megbizonyosodunk arról, hogy a teljesítményét egyáltalán nem befolyásolták az utolsó manipulációk.

Átmenet az elméletből a gyakorlatba

A saját dinamikus könyvtár megvalósítása természetesen nagyon jó, de a gyakorlatban sokkal gyakrabban kell foglalkozni azzal, ami szükséges.
valaki más végrehajtható fájljának beágyazása. Mit kell tenni?! Átalakítani DLL-be?! Természetesen nem! Elég, ha az X-DLL-nket egy kicsit módosítjuk, megtanítjuk az exe fájlok indítására a CreateFile API funkcióval, miközben maguk a futtatható fájlok elhelyezhetők (és kell is) elnevezett NTFS folyamokba, amelyek száma gyakorlatilag korlátlan. Sőt, ha a beinjektált exe dinamikus könyvtárakat vagy más komponenseket húz magával, akkor azok NTFS streamekbe is beágyazhatók (természetesen ezek már nem lesznek az aktuális könyvtárban, és ezért a végrehajtható fájlt szerkeszteni kell, hogy minden megváltozzon. utak). Ha ez a fájl be van csomagolva (és a legtöbb harci segédprogram, például a rendszerek távoli ügyintézés ritkán szerepelnek tiszta szöveggel), az X-DLL-ünk képes elkapni a CreateFile/LoadLibrary API-funkciókat, automatikusan követi a hiányzó fájlok hívását, és becsúszik a megfelelő elnevezett NTFS-folyamokba.

Egy másik fontos szempont. Ha levélben elküldünk egy X-DLL-t tartalmazó exe fájlt, lézerlemezre vagy bármilyen más nem NTFS adathordozóra írjuk, elveszítjük az összes megnevezett adatfolyamot, és a program azonnal megtagadja a munkát, átkozva, hogy nem találja a dll-t. .

A helyzet kritikusnak, akár drámainak is tűnik, de a nemes ember megmenti RAR archiváló, amely egyedülállóan képes az összes NTFS adatfolyamot fájlba menteni. Indítsa el a RAR-t, válassza ki az inject.exe-t, kattintson a „Hozzáadás” gombra (vagy nyomja meg a ), majd az archívum tulajdonságainál jelölje be a „Fájlfolyamok mentése” négyzetet (a „Speciális” lapon). Ezenkívül, ha szükséges, létrehozhat egy SFX archívumot arra az esetre, ha a címzett nem rendelkezik RAR-val, de ezek technikai részletek.

Megismételjük a fájl elküldésének folyamatát email Még egyszer csomagold ki a keletkezett archívumot, futtasd az inject.exe-t, és... íme! Dolgozik!

Takard el a nyomaidat (okos srácoknak)

Néhány fájl (különösen tele van protektorokkal) szigorúan felügyelik feddhetetlenségüket, és őszintén szólva nem reagálnak megfelelően a bemutatásuk kísérletére. Mivel azonban az X-DLL a többiek előtt kapja meg az irányítást, vissza tudja állítani az import táblát a memóriában, mintha minden megtörtént volna, mintha senki sem nyúlt volna hozzá. Ehhez egyszerűen hívja meg az API függvényt
VirtualProtect, az attribútum hozzárendelése a megfelelő memóriaterületekhez
PAGE_READWRITE, állítsa vissza az import táblát (amelynek eredetije könnyen menthető
X-DLL), majd állítsa be újra a PAGE_READONLY attribútumot ugyanezzel
VirtualProtect. Sőt, egy X-DLL a VirtualAlloc API függvény segítségével lefoglalhat egy memóriablokkot a kupacból, és oda másolja a törzsét, aminek természetesen teljesen áthelyezhetőnek kell lennie, vagyis az alapbetöltési címtől függetlenül működőképesnek kell lennie. Ezután már csak a szükségtelenné vált X-DLL-t kell kirakni a FreeLibrary meghívásával (ha esetleg valami ravasz integritás-ellenőrző mechanizmus úgy döntene, hogy listázza a betöltött modulok listáját).
Kis technikai árnyalat: bittámogatással rendelkező processzorokon
Az NX/XD, amely megtiltja a kód végrehajtását azokon a memórialapokon, amelyek nem rendelkeznek a megfelelő attribútumokkal, hozzá kell rendelni egy attribútumot
PAGE_EXECUTE_READWRITE. Ellenkező esetben, ha a felhasználó hardveres DEP engedélyezve van az összes alkalmazáshoz (nem csak rendszer összetevők, ahogy az alapértelmezés szerint történik), a gépi kód végrehajtása helyett a rendszer kivételt dob, és a trójai program végrehajtása összeomlik.

A PE fájl fejlécében van egy speciális mező, amely ellenőrző összeget tartalmaz. Az esetek túlnyomó többségében nulla, de ha ez nem így van, akkor az import tábla beavatkozása után újra kell számolni az ellenőrző összeget. Ezt teszi a segédprogram
Az EDITBIT.EXE a „/RELEASE” billentyűvel elindult. Az alapfelszereltség része Microsoft fordító Vizuális
Stúdióban és a Platform SDK-ban, így nem lehet probléma megtalálni.

Következtetés

Technológiák beágyazás végrehajtható fájlokba ne álljon meg, és védelmi mechanizmusokkal és operációs rendszerekkel együtt fejlődjön. A kard és a pajzs örök problémája, hogy ki fog előbb fejlődni. Kész segédprogramok használata, amelyek teljesen működnek automatikus üzemmód, egyrészt nem tekintélyes, másrészt túlságosan megbízhatatlan. A vírusirtó fejlesztők nem eszik a kenyerüket a semmiért! Az apróságok miatti kiégés elkerülése érdekében az összes X kódot magadnak kell megírnod. Amíg egyetlen példányban létezik, a védelmi rendszereknek esélyük sincs megakadályozni egy támadást!

Szép napot mindenkinek, kedves olvasóim! Mint mindig, Dmitrij Kostin veled van, itt minden változatlan). Úgy látom, sok embert érdekel, hogyan lehet két fényképet egybe kombinálni a Photoshopban. Megesik, hogy az emberek összehasonlítást akarnak végezni, például ELŐTT és UTÁNA, vagy valami mást.

Valószínűleg láttad már, hogy amikor az emberek közzéteszik fogyókúrás eredményeiket, akkor az ELŐTT és UTÁNA fényképeket is közzéteszik egyben. Egyébként én is ezt csináltam, amikor írtam. Általában ma megmutatom, hogyan lehet ezt egyszerűen megtenni. Szóval törje meg az ujjait, és induljunk!

A legtöbbet szerettem volna elmondani gyors út, de úgy döntöttem, hogy nem érdemes megismételni, mivel már beszéltem róla a leckében. Ki fog derülni, hogy egyik fényképed lesz a másikban. Koncentráljunk más módokra.

Két kép kombinálása

Ebben a példában úgy döntöttem, hogy egy „Előtte és utána” stílusú fényképegyesítést készítek. Ne mondd, hogy ezek az emberek nem egyformák. Ez két különböző ember). Általában nyisson meg két fényképet a Photoshopban, majd folytassa sorrendben. Két embert fotóztam: vékonyat és szakadt.

  1. Először is tegyük azonos magasságú képeket. Ehhez minden egyes fotón külön-külön lépjen a „Kép” menübe - "Képméret". Nézd meg a magasságban lévő pixelek számát. Kiderült, hogy a vékony 680, a pumpás 1329 pixeles.
  2. Ebben az esetben jobb, ha a feltöltött kép méretét 680 pixel magasságra csökkenti, hogy egyenlővé váljon, és ne veszítse el a minőségét. Tudod, hogy ez hogyan történik? Ha nem, akkor nézd meg a cikkemet (bár úgyis mindennek világosnak kell lennie). És mellesleg ne feledje a jock képének vízszintes méretét. 487-et kaptam.
  3. Most menjen a sovány nő fényképére, és lépjen újra a „Kép” menübe, ezúttal csak a „Vászon mérete” lehetőséget. Itt egyszerűen kinagyítjuk a munkaterületet anélkül, hogy magát a fényképet nagyítanánk. Tehát a vékony fotó vízszintes mérete 453 pixel. Gondolatban 487 pixelt adunk hozzá (a zsellér fotójának vízszintes mérete), és 940-et kapunk. Ezt a számot írjuk a szélesség cellába. A magasságot nem változtatjuk és 680-on hagyjuk.
  4. Most ki kell választanunk, hogy ez az új 487 pixel melyik oldalon jelenjen meg vízszintesen. Ha így hagyjuk, a vászon mindkét irányban 243 és 244 pixellel nő (487/2). De az „Előtte és Utána”-t szeretnénk csinálni, ami azt jelenti, hogy a vékony legyen balra, tehát az üres vászon a jobb oldalon. Ezután a helyen kattintson a bal nyílra, hogy a középpont balra kerüljön. Választható a háttérszín is, de esetünkben ez nem szükséges, bármelyik megteszi, mert úgyis bezárjuk. Ezután kattintson az OK gombra.
  5. Látod? Most van egy hatalmas darab fehér háttér. Most menjen a felfújt fotóhoz, vegye le a „Move” eszközt, tartsa lenyomva bal gomb egérrel a fényképre, és húzza azt a lapra a sovány srác fényképével.
  6. Ez egy apró dolog. Nem kell mást tenni, mint közvetlenül áthelyezni a fényképet fehér háttér. Pontosan kiszámítottuk a szélességet és beállítottuk a magasságot, hogy minden pontosan álljon.

Olyan egyszerű és egyszerű módja két kép kombinálása).

Egyesítse sima átmenettel

Van egy másik érdekes hatás, amikor az egyik fényképről a másikra való átmenet zökkenőmentes. Hadd tegyem ezt két állat példáján: egy oroszlán és egy saiga.

  1. Nyissa meg az oroszlán és a saiga képét szerkesztőnkban, de különböző lapokon.
  2. Lépjen az oroszlánrétegre, és válassza a lehetőséget.
  3. Most válassza ki, és győződjön meg arról, hogy az átmenet feketéről fehérre történik. És most húzzon egy vonalat ezzel a gradienssel körülbelül a közepén, ahogy a képemen látható.
  4. A képnek az oroszlánt ábrázoló részét vörös árnyalattal kell átfesteni. Nagy. Erre van szükségünk. Most nézze meg a rétegek panelt és a mi aktív réteg oroszlánnal. Ő a fő? Azok. Van rajta zár? Ha igen, kattintson rá a bal gombbal, hogy eltűnjön, különben egyszerűen nem tudjuk szerkeszteni ezt a réteget.
  5. Most távolítsa el a gyorsmaszk módot az ikonjára kattintva. A kép egy részét pontozott vonallal kell kiemelni. Ezt követően nyomja meg a gombot TÖRÖLés győződjön meg arról, hogy a tartalom megéri "Tartalom alapú", majd kattintson az OK gombra. A kép jobb oldalát el kell távolítani, és sima átlátszó átmenettel. Csak törölje a kijelölést (csak kattintson egyszer bármelyik kijelölő eszközzel, például egy téglalap alakú területre).
  6. Most menj a lapra a saigával (a fenébe, még mindig vicces állat és név). Ennek a két képnek a magasságát (pixelben) célszerű kiegyenlíteni, mint az előző példában. Most fogjuk a „Move” eszközt, és húzzuk a szegény saigát egyenesen az oroszlánhoz.
  7. És most a trükk (csak viccelek, persze ez nem trükk). A rétegek panelen (szegény állat, már megint tartjuk) tartjuk a réteget a Saigával a bal egérgombbal, majd húzzuk le, hogy az oroszlán alá kerüljön.
  8. Látod mi történt? A vadállatok királya és az antilop egyetlen fotón egyesül. Menő! Az antilopot egy kicsit mozgathatja a „Move” gombbal. Lássuk. A zökkenőmentes átállás sikeres volt. Véleményem szerint egész jól sikerült. Aranyos és nyugodt.

Nos, általában valami ilyesmi.

Természetesen photoshop. És még sok más módja van több fénykép egyesítésének. De úgy gondolom, hogy ezek a módszerek elegendőek lesznek az induláshoz. Sőt, az utolsó verzióban nem csak 2 fotót linkeltünk egybe, hanem egy egyszerű kollázst készítettünk, pl. Több különböző képet használunk egyben.

Egyébként, ha csodálatos kollázsokat szeretne készíteni, akkor nagyon ajánlom, hogy nézze meg kiváló tanfolyam ebben a témában. Számos példát részletesen megvizsgálunk. Néhány egyszerű képből megtudhatja, hogyan készíthet remekműveket, így tovább!

Üdvözlettel, Dmitrij Kostin.

Sziasztok! Ma a következő témával foglalkozunk: hogyan lehet két számítógépet összekapcsolni. És mutatok 2 módot, kezdjük.

Tekintsünk 2 módot:

  1. Hogyan lehet 2 számítógépet csatlakoztatni Wi-Fi használatával router vagy Switch.
  2. Csatlakoztassa vezeték segítségével.

Csatlakoztatni fogom a laptopomat (ezért ez a cikk arra is alkalmas, hogy megválaszolja a két laptopot egymáshoz). Készülékek operációs rendszer Windows 8.1 és Windows 7 rendszert futtató számítógép.

1. Két számítógép összekapcsolásának módja egy kapcsoló segítségével.

Ha van útválasztója vagy kapcsolója, két számítógép csatlakoztatása kétszer egyszerűbb. Még ha van is Wifi csatlakozási pont, kábelen vagy vezeték nélkül csatlakoztatta a számítógépet Wi-Fi kapcsolat nem számít. Ez ugyanaz, a lényeg az, hogy az alhálózat ugyanaz (például 192.168. 1 .*)

Először ezt kell ellenőriznie munkacsoport ugyanaz volt, különben a második számítógép nem látná az elsőt. Lépjen a vezérlőpultra, és válassza ki a rendszert.

És megváltoztatjuk a nevet. A lényeg, hogy ez a név minden számítógépen ugyanaz!

Tehát a számítógépek csatlakoztatásához lépjen a vezérlőpultra, és válassza ki az otthoni csoportot.

Vannak, akik úgy gondolják, hogy a vezetékes és a Wi-Fi-n keresztüli csatlakozás különböző dolgok. Ezért, hogy elpusztítsa a mítoszt hogyan lehet két számítógépet összekötni wifin keresztül,Úgy döntöttem, hogy Wi-Fi-n keresztül csatlakozom, és ugyanezt teszem.

Menjünk sorban.

Hozzáférést biztosítunk a szükséges fájlokhoz.

Ez az, csatlakoztál a csoporthoz.

Kattintson a Módosítás gombra Extra lehetőségekáltalános hozzáférés.

És válassza ki az összes olyan elemet, mint az enyém:

Minden. Most ellenőrizzük. Létrehozunk egy mappát, én például egy laptop asztalán hoztam létre (ami wi-fi-n keresztül csatlakozik).

Mindent írunk, ill konkrét felhasználó, akkor beállíthatjuk, hogy mi engedélyezett neki, és kattintsunk az általános hozzáférésre.

A speciális beállításoknál jelölje be a négyzetet, és nyomja meg az OK gombot. Ha speciális jogokra van szüksége, akkor a Haladó gomb.

Most ellenőrizzük. Megnyomom a startot a számítógépen, és belépek az internetre. És látom a laptopomat (nem zavartam).

Bemegyünk és megnézzük a mappát, amit a laptopon hoztam létre.

2 lehetőség két számítógép csatlakoztatására vezetéken keresztül (hálózati kábel)

Router nélkül csak 2 gépet lehet csatlakoztatni... Persze ha minden géphez adsz egy hálózati kártyát, akkor többet, de ez elég durva... Két gépet fogunk összekötni kábelen keresztül.

Általában a kábelt a 2. számítógéphez csatlakoztatjuk, a hálózati kártya. Ezután lépjen a hálózati vezérlőközpontba, és megosztott hozzáférés- Az adapter beállításainak módosítása. Kapcsolódik ezen keresztül helyi hálózat válasszon ingatlant. A protokoll 4-es verzióját és ugyanazt a tulajdonságot találjuk. Az a feladatunk, hogy elhagyjuk ugyanazt az alhálózatot, és a számítógép címe bármi lehet. Az egyik számítógépen 192.168.1.1-re, a másikon 192.168.1.2-re állítottam a címet. Normál maszk 255.255.255.0.

Kattintson az OK gombra 2 számítógépen, lépjen online és ellenőrizze.

Látjuk az eredményt.

Továbbá, ha nem működik, végezze el a beállításokat az 1. módszer szerint. Közvetlenül utánuk csináltam, ezért dolgoznak.

Ellenőrizze, hogy a tűzfal vagy a víruskereső tűzfala (ha van) nem blokkolja-e azt.

És amikor online lép fel, megjelenhet egy tábla a tetején, amely megkérdezi, hogy engedélyezi-e a fájlok bejutását megosztott hálózat. Kattintson az igen gombra.

Üdvözlöm, kedves vendégeink és blogolvasóink! Folytatjuk a „Számítógép és internet a bábuknak” rovatunkat. Feladat áll előttünk: gyorsan kössön össze két különböző fotót letöltés nélkül harmadik féltől származó alkalmazásokés képszerkesztői jártasság nélkül.

Függetlenül attól, hogy számítógépen dolgozik, vagy szórakoztatásra használja ezt az eszközt, minden esetben előfordulhat, hogy két képet kell egyesítenie egy probléma megoldásához.

Például együttműködik és használja a szolgáltatásokat, amelyek segítik testének átalakulását. Ebben az esetben a termék használata előtt és egy ideig a termék használata után fényképeznek.

Ezután két fényképet kell egyesíteni egybe, és szöveget kell hozzáadni, hogy potenciális partnereket és ügyfeleket vonzanak a vállalkozásba. Itt található a szabványos Paint alkalmazás, amely mindenhol elérhető Windows verziók, vagy legalábbis a legtöbbjük.

Két fénykép egyesítése a szabványos Paint alkalmazásban

Eddig talán nem is sejtetted, hogy van egy alkalmazás a számítógépeden, amely képes kezelni két fénykép összekapcsolását. Én sem tudtam erről azonnal, hanem csak egy idő után, amikor már megtanultam harmadik féltől származó programokban dolgozni.

De térjünk az üzlethez. A Paint alkalmazás gyors megtalálásához a számítógépen meg kell nyitnia a keresést a bal alsó sarokban. A Windows verziójától függően a keresés helye eltérő lehet. Példaként a Windows 10 használatát mutatom be.

Nyissa meg a keresést, és írja be a program nevét. A számítógép felülről adja meg a kívánt eredményt. Kattintson az ikonra, és indítsa el az alkalmazást.

Most fel kell töltenie az első fényképet a szerkesztéshez. A program bal felső sarkában kattintson a „Fájl”, majd a „Megnyitás” elemre.

Ekkor megnyílik egy ablak a fénykép helyének kiválasztásához. Keresse meg a kívánt fényképet, és egyszerűen kattintson rá. Ha a fénykép túl nagy, a jobb alsó sarokban lévő csúszkával csökkentheti a méretét.

A skála beállítása után le kell vágnia a felesleget. Ehhez lépjen a felső eszköztárra, kattintson a „Kiválasztás” gombra, majd válassza a „Téglalap alakú terület” lehetőséget.

Megjelenik egy kiválasztási jelző. Most le kell nyomnunk a bal egérgombot, és anélkül, hogy elengednénk, húzzuk felülről lefelé és oldalra a jelölőt, így kiválasztva azt a területet, amelyet el szeretnénk hagyni.

Ezután kattintson a „Vágás” gombra a panel tetején.

Most van egy fénykép kivágva a széleken, amit el kell mentenünk.

Lépjen a már ismerős „Fájl” elemre, válassza a „Mentés másként” lehetőséget, majd válassza ki a kívánt formátumot. Általában a "JPEG-képet" választom.

A program felkínálja a mentési hely kiválasztását, és megadhatja a fájl nevét is.

Az első fénykép mentése után a másodikat közvetlenül a „Fájl”, „Megnyitás” módon kell megnyitnia, és szükség esetén csökkentenie kell a léptéket.

Ezután, mint az első fotónál, levágjuk. „Kiválasztás” - „Téglalap alakú terület” - „Vágás”.

Most az elkészített fényképen létre kell hoznia egy helyet a második fénykép számára. Ehhez vigye a kurzort a fénykép jobb szélére, és az egér bal gombját lenyomva feszítse ki a vásznat megközelítőleg a kívánt méretre. Nem baj, ha tovább nyújtjuk, később meg tudjuk javítani.

Most el kell helyeznie az első fényképet az üres vászon jobb oldalára. Ehhez lépjen a program bal felső sarkába, és kattintson a „Beszúrás” gombra, majd a legördülő listából válassza a „Beszúrás innen” lehetőséget.

Megnyílik egy kiválasztási ablak. Egy korábban elmentett fényképet egyszerűen az egérrel kattintva kiválasztunk.

Ha különböző formátumú és méretű fényképeket kombinál, módosíthatja a méretet a felül található „Átméretezés” lehetőségre kattintva, majd kiválaszthatja a skálát százalékban vagy pixelben.

Ebben az esetben az első feldolgozott fotó kisebb. Húzza az egérrel a jobb oldalra, és válassza ki a méretet.

A méret beállítása után a második fotót pontosan az elsővel helyezzük el, és a megmaradt üres vásznat ugyanúgy jobbra „toljuk”, ahogy kihúztuk, vagyis a jelölőt a bal egérgombbal lenyomva. . Ha nincs szüksége másra, mentse el a fényképet pontosan úgy, ahogy az elsőt.

Ha szövegre van szüksége egy fényképen, tegye a következőket. Egy tiszta vászoncsíkot húzunk ki az egérrel az alján. Ezután a felső panelen válassza ki a SZÖVEG eszközt a nagybetűre kattintva.

Ezután kattintson a bal gombbal az alábbi üres vászonra. Ez megnyitja a testreszabható szöveges beállításokat. Válassza ki a méretet, a betűszínt, a stílust, majd írja be a kívánt szöveget. A beviteli mező méretének csökkentéséhez a szöveg megírása után egyszerűen állítsa be az egérrel a jelölők húzásával.

Ha a szöveget a kívánt helyre szeretné mozgatni, mozgassa az egérkurzort a szélére, amíg meg nem jelenik egy négy nyíllal rendelkező kurzor. Amikor megjelenik a kurzor, tartsa lenyomva a bal gombot, és mozgassa a szöveget.

Így több szövegmezőt is hozzáadhat, és a megfelelő helyekre helyezheti őket. A munka eredménye egy ilyen, két fényképből összeállított kompozíció is lehetne.

Ez mindenem. Remélem, a „Hogyan lehet két fényképet egyesíteni Photoshop nélkül” című cikk hasznos volt az Ön számára. A legjobb támogatás számomra a tiéd Visszacsatolás. Sikert és jólétet neked!

Hogyan lehet két fényképet egyesíteni Photoshop nélkül frissítette: 2019. augusztus 5.: Ruslan Osharov

Először is meg kell nyitnunk mindkét képünket a Photoshopban. A képeket mindig külön ablakban nyitom meg.

Most tudnia kell az egyes képek magasságát. Ezt megtehetjük a Képméret paranccsal (Ctrl+Alt+I), de van ennél jobb módszer is. A munkadokumentum ablakának alján beállíthatja a dokumentum méretének megjelenítését, ezt az ábrán mutattam meg:

Tehát úgy látom, hogy a fekvő fotó magassága 2380 pixel.

Nézzük a portréképet:

Magassága 3200 pixel.

Ezért a „Képméret” paranccsal csökkentjük az álló kép magasságát. Nyomja meg a Ctrl+Alt+I kombinációt, és írja be a 2380 értéket a „Height” ablakba:

Most mindkét kép magassága azonos.

Jegyzet. Az "Image Size" párbeszédpanel képernyőképe a CC verzióból származik, a CS6 verzióban be kell jelölni a "Resample Image" opciót, és csökkenteni kell a méretet "Bicubic Automatic" módban



Betöltés...
Top