Reverse engineering , è il processo mediante il quale un oggetto creato dall'uomo viene decostruito per rivelarne i disegni, l'architettura o estrarre conoscenza dall'oggetto; simile alla ricerca scientifica, l'unica differenza è che la ricerca scientifica riguarda un fenomeno naturale. Ecco come iniziamo.
Questo non è un exploit che ho codificato e distribuito, ma piuttosto notato sul ripristino all'avvio di Windows 7 a volte dopo aver completato i controlli aprire i risultati in notepad.exe. Ancora più importante, presumo che notepad.exe fosse in esecuzione come amministratore con privilegi elevati, anche notepad.exe ha la capacità di aprire Windows Explorer. Quindi, ora avevo privilegi di amministratore elevati su tutte le partizioni di unità elencate. Ora potrei garantire che cmd.exe possa essere eseguito dalla schermata di blocco, che funziona anche come amministratore con privilegi limitati. È così che sono diventato un admin
locale su un computer che ero solo un utente e che la macchina aveva le password del bios, per proteggersi da questo tipo di attacco. Inoltre, questo attacco potrebbe bypassare BitLocker se fosse stato utilizzato.
Questo è un tipo di metodo, che ho dedotto che Windows 7 aveva un vettore di attacco, cosa di cui avevo ragione. Anche se, sospetto che la tua domanda riguardasse gli exploit zero-day. Pertanto, strumenti di reverse engineering sono spesso il modo. Questo diventa il test della scatola nera.
Conilcodicecompilato,presumocheilprogrammatoreabbiacodificatoilprogrammainunmodoparticolarementreosservacomel'inputinfluiscesull'output.
- Input()=3
- Code()=...(Nonsappiamo,ècompilato)
- Output()=10
Possiamodedurreora,inbasealfattochel'inputè3el'outputè10.Unprobabilecalcolopotrebbeessere3*3+1=10
.Anchesepotrebbeancheessere3*4-2=10
...Chenedicisenefacciamounaltro:
- Input()=5
- Codice()=...
- Output()=16
Quindi,ilpattern5*3+1=16
potrebbeessereunoschemacomune,deduciamoaltririsultatietroviamolacorrispondenzatrainostriinputeoutputtestati.
Quindiunaformulaaritmeticacomune,perchéilcodicepotrebbeesseresum=$input*3+1
.
OraabbiamoristrettoilconcettodiReverseengineering,concentriamocisullosfruttamentodiunserviziodirete,SafarisuiOS4.0.2checonsentiva '. pdf' Jailbreak di 'Privilege Escalation' locale . Un exploit come questo sarebbe probabilmente stato rilevato notando che il browser si arrestava in modo anomalo (spesso un buffer overflow) durante il caricamento di un PDF in determinate condizioni. Nello specifico CVE-2010-1797
Multiple stack-based buffer overflows in the
cff_decoder_parse_charstrings function in the CFF Type2 CharStrings
interpreter in cff/cffgload.c in FreeType before 2.4.2, as used in
Apple iOS before 4.0.2 on the iPhone and iPod touch and before 3.2.2
on the iPad, allow remote attackers to execute arbitrary code or cause
a denial of service (memory corruption) via crafted CFF opcodes in
embedded fonts in a PDF document, as demonstrated by JailbreakMe.
NOTE: some of these details are obtained from third party information.
Questo exploit permesso mostrato in JailbreakMe, consente di eseguire codice arbitrario all'interno del browser Web e di essere elevato ai privilegi di root senza la tua autorizzazione. Il browser andrebbe in crash, seguito dal riavvio di iOS, spesso su iOS 4.
OllyDbg is a 32-bit assembler level analysing debugger for Microsoft®
Windows®. Emphasis on binary code analysis makes it particularly
useful in cases where a source is unavailable.
Esercitazione pratica inversa di ingegneria 1 [HD] illustra come funziona OllyDbg e ti dovrebbe presentare l'utilizzo di questo particolare strumento per il reverse engineering.
Questo è lontano da una guida completa sul reverse engineering. Come punti relativi a Sqlmap, dex2jar, jd-gui, edb-debugger e Valgrind, solo per citarne alcuni, non sono stati inclusi. Per non parlare della retroingegnerizzazione di un web server di directory chiuso o di reverse engineering hardware.