nisfarm.ru

Reverzní inženýrství pro začátečníky. Chraňte aplikace Android od reverzního inženýrství

Někdy chce někdo vidět a jaký je vyplnění určitého programu? Pak musí použít reverzní inženýrství. Co to je? Jak to funguje? Jak se tento proces děje? To vše se můžete dozvědět z tohoto článku.

Co je reverzní inženýrství programů?

reverzní inženýrstvíPrávě proto proces volání analýzy aplikací je volán, aby pochopil, jak to funguje, aby se v budoucnu znovu vytvořily nezbytné změny. Obvykle se k těmto účelům používá debugger a assembler. V závislosti na kvalitě použitého softwaru se výsledek bude lišit a doba potřebná k tomu, aby byla normální. Vysvětlení reverzního inženýrství pro začátečníky je nejlépe založeno na příkladu. Tímto způsobem bude fungovat aplikace napsaná pro systém Android. A teď se dozvíme, co a jak.

Používání aplikací pro Android




reverzní inženýrství programůNejprve je třeba vyjasnit některé body. V aplikacích se používá kód bajtu a LogCat. Jedná se o lokální analogy dříve zmíněného debuggeru a assembleru. Je také nutné pochopit strukturu samotných aplikací. Takže každý program je soubor s příponou apk. Je zabalený ziprsquo th. Máme zájem o jeho obsah - aplikační zdroje, classes.dex a AndroidManifest.xml. Pokud programujete v systému Android, pak otázky s první a poslední by neměly být. Ale classes.dex je bytecode programu, který je kompilován specificky pro virtuální stroj. Chcete-li získat z něj zdrojový kód java reprezentovaný na internetu prostředky nelze získat. Ale je možné získat dalvik opcodes, speciální sadu příkazů, které se používají pro virtuální stroj. Pro analogii můžeme říci, že jde o assemblera lokálního úniku. Také classes.dex lze změnit na soubor s rozšířením. Již v tomto případě můžete po dekompilaci získat java kód, který bude více či méně čitelný. Tímto způsobem půjdeme.

Dekompilace

Tento proces bude prováděn s použitím programu Apk Manger. Než začnete, musíte se ujistit, že máte správné ovladače pro zařízení a funguje režim ladění USB. Zpočátku budeme muset přesunout soubor, který pochopí direktivu apk_manager place-apk-here-for-modding. Poté spusťte soubor Script.bat. Pokud není problém, spusťte konzolu, která bude mít zelené nápisy. Vybíráme položku číslo devět - "Dekompilovat". Po spuštění procesu není nutné konzolu zavřít. Pak byste měli otevřít soubor APK, který vás zajímá, pomocí archivátoru a extrahovat classes.dex z něj, který je třeba zpracovat pomocí dex2jar. K výsledku, který potřebujeme, musíme ji přesunout na objekt s příponou .bat. Zobrazí se soubor, který skončí s příponou .jar. Zatímco okno není zavřené.

Analýza dat

reverzní inženýrství pro začátečníkyChcete-li získat informace o aplikaci, musíte otevřít její manifest. Na tom zjišťujeme, že se jedná o hlavní činnost. Má to pro nás největší důležitost. Je také žádoucí podívat se na spodní část programu. Jsou-li informace o správci licencí v dolní části, značně to komplikuje reverzní inženýrství. Pokud přepneme na jd-gui a rozbalíme strom, uvidíme několik jmenných prostorů. Předpokládejme, že jsou tři. V prvním jsou soubory související s reklamou. Druhý bude obsahovat třídy správce licencí. Ve třetím případě máme potřebná data. V tom pak jdeme. Zde budete muset najít a odstranit klíč a potom zbytek řádků, které kontrolují, zda je licencovaná verze funkční. To vše musí být vyčištěno. Pak v našem Apk Manageru hledáme místo, kde má být umístěn bajtový kód. Nyní uděláme trochu odklonu a komentujeme příkazy, které by mohly způsobit problémy. Poté program stačí kompilovat.

Vytvoření aplikace

reverzní inženýrské aplikace pro AndroidPomůže nám to všichni správci aplikace Apk. V okně konzoly, které jsme neuzavřeli, jsme zvolili položku # 14. Dále věc technologie. Pokud je aplikace poměrně komplikovaná, pak při spuštění může částečně nebo úplně ztratit svou účinnost. Nebojte se, znamená to, že jsme jen na půli cesty a stále máme kam jít. Pokračujeme v reverzní inženýrství Android aplikací. Říci, co dělat v konkrétním případě, obecně, bohužel, je nemožné. Proto budete muset najít problém sami. Pokud je okno aplikace zablokováno vyskakovací okno, pak musíte kód zobrazit a odstranit část, která je zodpovědná za toto dialogové okno. Pomoc s tímto může jd-gui. Jak můžete vidět, reverzní inženýrství není snadný úkol a vyžaduje si značné množství znalostí. I když se vše bez problémů rozběhlo, bude nutné prověřit pracovní kapacitu aplikace. To je reverzní inženýrství je stále časově náročné akce. Pokračujeme v práci, dokud nebudeme identifikovat všechny problémy.

Bezpečnost

Co když potřebujeme chránit aplikace Android od reverzního inženýrství? V tomto případě existují dvě možnosti: použití speciálních programů nebo vytvoření struktury kódu, která bude zasahovat do analýzy toho, co bylo napsáno. Druhá možnost je vhodná pouze pro zkušené profesionály, proto budeme zvažovat pouze první způsob ochrany. Jako specializovaný software používáme ProGuard. Tato aplikace se používá ke snížení, zamaskování a optimalizaci kódu. Pokud je program "spuštěn", získáme soubor s příponou * .apk menší než to bylo. V tomto případě bude mnohem těžší rozebrat. A výhodou tohoto programu je, že byl dokonce zaveden do montážního systému Android aplikací s aktualizací r9. Proto může každý vývojář použít, který má standardní nástroje pro tvorbu a vývoj.

Závěr

ochrana android aplikací od reverzního inženýrstvíNelze říci, že reverzní inženýrství může být prezentováno jako něco rovnoměrně špatného nebo dobrého. Samozřejmě, z pohledu vývojářů, kteří vytvořili aplikaci, není to radostná událost. Ale na druhé straně, v mnoha případech zkušené programátory psaní potřebné soubory mohou být čas levnější než používání těchto nástrojů. Ačkoli pro začínající vývojáře, reverzní inženýrství může způsobit, dobré služby, pokud neexistuje představa, jak implementovat něco, ani jako příklad a není zcela jasné, obrys může pomoci při dosažení tohoto cíle.

Sdílet na sociálních sítích:

Podobné
© 2021 nisfarm.ru