Hold din ### kode sikker fra ### reverse ### ingeniører som boss: 5 trin

Hold din ### kode sikker fra ### reverse ### ingeniører som boss: 5 trin

Indholdsfortegnelse:

Anonim

I denne vejledning skal vi vise dig nogle grundlæggende teknikker, der bruges til at beskytte din kode mod at blive omvendt konstrueret.

BEMÆRK: Denne vejledning giver ikke fuld beskyttelse imod omvendt ingeniørvirksomhed, men det hjælper noget for begyndere

Motivatives:

1- Har du implementeret en algoritme og bange for, at nogen stjæler din kode?

2- Vil du gøre det svært for dem, der ønsker at kompromittere din ramme eller værktøj?

3 - Har du kommercielle produkter baseret på arduino eller AVR og ønsker at holde kildekoden hemmelig?

4- er du nybegynder malware skribent? (Jeg håber du ikke er)

5- måske er du ingen af ​​ovenstående, men bare du vil skræmme dine venner med de nye tricks du vil lære.

denne vejledning er beregnet til at være til linux-brugere Jeg vil snart oprette en anden instruerbar til Windows-brugere;) og linket vil være her.

Jeg skal påpege, at jeg vil bruge det enkle hej verdenseksempel til at illustrere disse teknikker. Men det kan bruges i mere komplekse eksempler.

forsyninger:

Trin 1: Krav

du får brug for:

1- x86 linux-maskine. De samme teknikker kan anvendes til enhver arkitektur (x64, arm, …..) med gcc installeret

2- en slags kompileret sprog som C, C ++ eller et andet sprog, der er kompileret direkte i maskinens sprog (Java virker ikke, C # fungerer ikke)

3- Den meget grundlæggende viden om samlingssprog. (Det er ikke et must, men det vil hjælpe meget).

Trin 2: Den grundlæggende idé

vi vil diskutere de teknikker, vi vil bruge til at forstyrre ting:

1-skjul alle tekster

2- Indsæt nogle junk bytes midt i koden

3- Fjern alle symboler

Trin 3: Kryptering af tekst

At holde teksterne i koden som det gør det nemt for omvendte ingeniører at finde ud af, hvor de skal starte. og de kan nemt manipulere denne tekst let eller forsøge at omdanne koden nær disse strenge

Det første billede er hex-visningen for denne kode

#omfatte

int main ()

{

printf ("Hej, verden n");

}

ondsindet bruger og grave i din eksekverbare ved hjælp af en hex-editor og skifte tekst hello verden til noget andet

så vi skal kryptere teksten ved hjælp af nogle grundlæggende funktioner

Jeg skrev den enkle kode for at forsøge at skjule hello verden

#omfatte

#define dec (x) x + 5

int main ()

{printf ("% c% c% c% c% c% c% c% c% c% c% c% c", dec (99), dec (96), dec (103), dec dec (106), sønderdeling (27), sønderdeling (114), sønderdeling (106), sønderdeling (109), sønderdeling (103), sønderdeling (95), sønderdeling (5));

}

Denne kode virker ubehagelig, men det hjælper meget, alt det gør, er at tage hvert nummer og tilføj 5 til det og udskrive det som tegn.

det gør strengen skjult dybt i den binære fil, og det er målet, at målet er nået

alle strenge er skjult i det mindste i hex-oversigten: D

Du kan tjekke hvert program af dig selv ved at:

1- sæt hver kode i filen hedder hello1.c og hello2.c

2- fra din termiske type:

gøre hej1

lav hello2

3- for at køre disse koder (tjek funktionalitet) type "./hello1" derefter "./hello2"

4- sidste trin er at se hex dump af disse eksekverbare filer med "xxd hello1" og "xxd hello2"

Trin 4: Tilføj nogle junk bytes

vores næste skridt er at tilføje noget vrøvl i forsamlingsfilen i vores hello verden, så vi kan skjule alle aspekter af vores kode.

først skal vi generere.s filen af ​​vores kode "gcc hello.c -S -masm = intel"

Derefter åbnes filen hello.s og søger efter main (For dette trin skal du læse gennem samling og forstå strømmen af ​​programmet for at sikre, at du ikke bryder din kode)

på en hvilken som helst linje indenfor main (Som jeg sagde, sørg for at du ikke ændrer strømmen af ​​programmet) skriv "jmp navn"

du kan skrive hvad du vil i navn efter identifikationsreglerne, og skriv derefter på "Next" på næste linje.

hvor navnet er det samme navn som du brugte før efter det mellem "jmp navn" og "navn:" du kan skrive nogle junk bytes (skal starte med ".byte 0x" end 1 byte hex nummer)

Dette vil ændre nogle af de anvendte instruktioner, men vil udføre korrekt: D

nu for at opbygge denne samlingskode type (gcc hej.s -o hej)

og sørg for at alt er ok

Trin 5: Fjern alle symboler

efter at have afsluttet alle de foregående teknikker er der et sidste skridt, der skal gøres, erstatte symbolerne og navnene fra koden en simpel god måde at gøre dette er simpelthen strimmelkommandoen

prøv at køre stripe hej

Efter dette trin fjernes alle navne som "main" og "home" og "name", så det vil være lidt svært at spore koden du har skrevet

Det var alt folkens.

Venligst donér os på bitcoins adresse for at hjælpe os med at levere instruktioner af høj kvalitet

17Ta5BnfJdCtXXmv9rJu3SSfMEPF2g7kpF