Reverse Engineering

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Zawsze fascynowalo mnie "grzebanie" w zdesasemblowanym kodzie. Niestety jestem leniem i czesto moja fascynacja konczyla sie na etapie przegladania kodu. Swego czasu zainteresowalem sie crackingie gdyz dzieki niemu moglem lepiej zrozumiec kod. Lecz i ta fascynacja nie trwala dlugo. Przyszedl czas na BCB. Dobrze ze czlowiek sie zmienia z dnia na dzien.
Jakis czas temu przeczytalem ten fragment ksiazki: Reverse Engineering Techniques Wszystko nie bylo by takie ciekawe gdyby Microsoft udostepnil dokumentacje wszystkich funkcji, obiektow, etc. Wspomniany powyzej fragment jest chyba jedynym tekstem skupiajacym sie na analizie zdesasemblowanych i nieudokumentowanych funkcji Windows. Wiadomo ze najprostsza drogo do zrozumienia tego wszystkiego (na poczatku) jest zabawa z generowaniem kody przez VC++ i analizowanie go. Jezeli zas zaglebimy sie glebiej w ciala funkcji sprawa troche komplikuje sie ale i robi sie ciekawsza
<
Pytanie - czy ktos zna jakies podobne teksty, materialy ulatwiajace zglebienie tej sztuki?
 

eXxyL

Użytkownik
Dołączył
Styczeń 25, 2006
Posty
12
Reinzynierja wsteczna, kocham to.(cracking i te sprawy ^^) warto zajrzec na ctrl-d.prv.pl
 

b4rt3kk

Użytkownik
Dołączył
Marzec 20, 2005
Posty
78
dla posiadaczy emule, w searchu jak wpiszecie Reverse Engineering jest bardzo fajny plik rar zajmujacy ok 800MB. Fakt duzo zajmuje ale jest w nim poprostu wszystko
smile.gif
czego dusza zapragnie
<
dla chetnych prosze o PM podam link ed2k
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
800MB to rzeczywiscie nie malo - napisz co zawiera ta paczuszka...
 

b4rt3kk

Użytkownik
Dołączył
Marzec 20, 2005
Posty
78
**R E V E R S E E N G I N E E R I N G**
|
+---Analyzers and Rippers
| +---Amon's File Informator
| +---Analyzer 1.60
| +---CC 1.1b8
| +---CheckExe 1.17
| +---CryptoSearcher
| +---Dragon UnPACKer 5rc4
| +---Exe Info 1.7
| +---Exe Scan
| +---FArc 1.24
| +---File Analyzer 1.7
| +---File Detect 1.0.12
| +---File Inspector 1.0
| +---File Scanner 1.0
| +---File Spy 1.5.431
| +---FileInfo 3.01
| +---FileType 1.26
| +---GetTyp for DOS 2.60
| +---GetTypW 2000 0.30
| +---idArc
| +---Imhotep 1.6.0.5
| +---Lame PE Analyzer
| +---Language 2000
| +---LGFV 2.10
| +---MapAll 0.35
| +---MultiRipper 2.80
| +---PE Edit 1.0
| +---PE Scan 3.31
| +---Peek 1.1
| +---PEiD 0.92
| +---ProcAddress 1.0
| +---ProtectionID 5.0
| +---Retool 1.07
| +---Ripper 5.00
| +---ScanEXECOM 2.00
| +---String Reaper 2
| +---String Search 3.03
| +---TrID 1.55
| +---Trw2000 1.23
| +---Typ_D32 (DOS) 2003
| +---VBREF 2.2
| +---Wark 1.2
| ---What Is 2.03
+---APIs, References and General Essays
+---Crackmes and Reversemes
| ---BiW reversing - Info_file
+---Cryptography and Cryptology
| +---Code Snippets
| +---Cryptool 1.3.05
| +---ebooks
| +---PGP Enterprise 8.0.3
| ---Universit… Italiana Cracking
+---Debuggers
| +---ASpr Debugger 1.0b
| +---CodeView
| +---Debuggy 1.0
| +---GoVest!
| +---Hackman Debugger 1.0b
| +---Hoko 1.0
| +---Numega Driver Studio 2.5
| +---Numega SmartCheck 6
| +---OllyDbg 1.10
| +---Quaid Analyzer 0.5
| +---SoftICE 2.80 (DOS)
| +---SoftICE 4.05 + vari
| | +---ADump 1.0
| | +---BreakIce 1.00
| | +---FrogsIce 1.09b4
| | +---IceDump 6.023
| | +---IceLoad 0.17
| | +---IcePatch 2.0b
| | +---NT All 0.6b
| | +---SoftICE 4.05
| | +---SoftICE 4.30 Lite
| | +---Super BPM
| | ---Winice WinME Loader
| +---SoftICE Driver Suite 3.0.1
| | ---SoftICE per Windows XP_file
| +---Turbo Debugger
| +---WinDbg 6.3.5
| ---WKTVB Debugger 1.4e
+---Disassemblers and Decompilers
| +---Bdasm 1.0
| +---Borg 2.27
| +---DCC32
| +---DeCafe 3.9
| +---Decompiler 1.00b
| +---DeDe 3.5
| +---Delphi Source Rescuer
| +---DePB
| +---Dis 86
| +---DJ Decompiler 3.7.7
| +---ExDec
| +---Exe2C
| +---Hackman Disassembler 8.0
| +---IDA Pro 4.6
| +---Jad 1.58
| +---PEDasm 0.31
| +---ProcessDasm 0.2
| +---Proview Dasm 1.4f
| +---REC 1.4
| +---Reflector 4
| +---ReFox 8.0
| +---RemoteSoft Salamander
| +---RevenderPro
| +---Software Decoder 6.0
| +---Sourcer 8.01
| +---Spasm 4.15
| +---SpiDEr 2.0
| +---Spider Disasm 2.0
| +---SWF Decompiler
| +---VB Decompilers
| +---VB RezQ
| +---VBDE 0.85
| ---W32Dasm 8.93 (+patch)
+---Disk Protections
| +---CD_Cops Decrypter
| +---ClonyXXL
| +---DaemonTools 3.46
| +---Insektors 3.0
| +---ISO test
| +---NeverLock
| +---PlayBackup 2.1
| +---Safedisc 2 Cleaner 1.20
| ---UnSafeDisc 2.05.30
+---Editors and Viewers
| +---Biew 5.5.0
| +---DAMN nfo Viewer 2.10
| +---Hackman Hex Editor 7.03
| +---Hex Editor Pro 1.0.13
| +---Hex Workshop 4.23
| +---HEXpert 3.0
| +---Hexplorer
| +---Hiew 6.86
| +---HyperEdit 6.05
| +---Programmers Editor 4.4
| +---PS Edit 4.4
| +---RegeditR
| +---RegView
| +---RTA 2.00b2
| +---SciTe 1.6.1
| +---Strong Editor 4.60
| ---UltraEdit32 10.20a
+---EXE Tools
| +---Bonkers' PE Fixer 1.0
| +---Code Snippet 1.05.2
| +---Exe-Joiner 1.00
| +---File insPEctor 1.0
| +---Function Replacer 1.0
| +---ICE Patch 1.0
| +---IID King 1.0
| +---ImpREC 1.6
| +---ITcompare
| +---LordPE
| +---MakePE 1.30
| +---Neural Noise Tools
| +---PE Corrector 1.76
| +---PE Explorer 1.94
| +---PE Labs 1.00
| +---PE Lock 2.04
| +---PE Optimizer 1.3
| +---PE Pack 1.0
| +---PE Protect 0.9
| +---PE Realigner 2
| +---PE Rebuilder 0.96b
| +---PE Section Maker
| +---PE Shield 0.2a2
| +---PE Snoop 2.0
| +---PE Tools 1.5.4 Xmas Edition
| +---PE UnLock
| +---PE Wizard 1.10
| +---PE-Crypt32 1.02
| +---PE-Realigner 0.1b
| +---PEdasm 0.31
| +---PEditor 1.7
| +---PeRdr 0.0103b
| +---PErdr 0.0104
| +---rebIT 1.1
| +---Revirgin 1.5
| +---Section Maker 0.2
| +---SetCSUM 1.00
| +---Stone PE-Encrypter 2.0
| +---StructLook 4.30
| +---StudPE 1.8
| +---Topo 1.2
| +---Virogen's PE Realinger v0.41
| ---Wark 1.3
+---Game Hacking
| +---AAT 1.5
| +---CrackAid 3.39
| +---Game Cheater 1.0
| +---Game Trainer 1.61
| +---GameHack 2.0
| +---GameWiz32 1.43
| +---RAM Cheat 1.2
| +---Trainer Maker Kit 1.51
| +---TSearch 1.6
| +---Unlimited Cheats 3.0b
| ---WinHack 2.00
+---Packers, Cryptors and Protectors
| +---AcProtect 1.09g
| +---APack 0.98
| +---aPLib v0.36
| | +---examples
| | | +---16bit
| | | +---ada
| | | | +---ACU_Dos
| | | | ---ACU_Win
| | | +---c
| | | +---delphi
| | | +---dll_asm
| | | +---dos32
| | | +---masm32
| | | +---tlink32
| | | +---tmt
| | | ---vpascal
| | +---lib
| | | +---delphi
| | | +---djgpp
| | | +---dll
| | | +---elf32
| | | +---vc
| | | ---watcom
| | ---src
| | +---asm
| | +---c
| | +---nasm
| | ---safe
| +---ARM Protector 0.2
| +---Armadillo 3.60
| +---Armadillo 3.75
| +---AsPack 2.12
| +---AsProtect 1.2
| +---CodeCrypt 0.164
| +---Com Cryptor 1.80
| +---Corso 5.2
| +---Crunch v1.0
| +---EnCryptor 1.0
| +---Exe Stealth 1.07
| +---EXECryptor 1.3
| +---FileXPack 1.0b
| +---FSG 1.33
| +---HuffComp 1.3
| +---MANtiC0RE's Protector Pack
| +---MEW 11 SE 1.1
| +---Neolite 2.0
| +---NFO 1.0
| +---PC Shrink v0.71
| +---PE Compact 2
| +---PE Crypt32 1.02
| +---PE Diminisher v0.1
| +---PE-SHiELD v0.25
| +---PELockNT 2.04
| +---PELockTide 1.0
| +---Petite 2.2
| +---Scanner 5.0
| +---Shrinker 3.4
| +---TeLock 0.98
| +---Trap 1.21
| +---UPX 1.25
| +---UPX Scrambler 3.06
| +---XCR 0.13
| +---Xtreme Protector 1.07
| +---Yado Kripton 0.5
| +---Yoda's Crypter 1.3
| ---Yoda's Protector 1.01
+---Password Crackers
| +---Accent Office Password Recovery
| +---Advanced Archive Recovery 2.20
| +---Advanced Office Password Breaker 1.20
| +---Advanced Office XP Recovery 2.40
| +---Advanced Outlook Password Recovery
| +---Advanced Password Generator 2.82
| +---Advanced PDF Password Recovery
| +---AnyPassword 2.0
| +---BrkARJ 1.0
| +---Brutus
| +---Claymore 1.0
| +---Code Thief Deluxe 3.5
| +---Cracker Jack 1.4
| | +---Jackass 1.1
| | ---KOS Password Package
| +---cRARk v2.3a
| +---Dictionaries
| | +---Advanced Wordlist Generator 1.1
| | +---Dic-Gen 1.0a
| | +---Erudite 1.5
| | +---Stylist 1.0
| | +---WinUniq 2.0
| | ---Wordlist Handler
| +---DMonkey Wr3nch 1.1
| +---Excel PWD Cracker
| +---Fast ZIP Cracker 1.06
| +---Jill 2.0
| +---John the Ripper 1.6
| +---Killer Cracker 9.5
| +---L0phtCrack 4
| +---Masked PWD Stealer 1.0
| +---MinCrack 1.1
| +---Passware Kit 6.3
| +---Passwords by Mask
| +---PDF Password Recovery 1.33
| +---PopCrack 1.0
| +---Rainbow Crack 1.2
| +---RAR Password Cracke 4.12
| +---Refiner 1.5
| +---The Inventor 1.0
| +---Therion's PU
| +---Ultimate ZIP Cracker 7
| +---Ultra Zip Cracker 3.61
| +---UnMask 1.0
| +---Visual Zip Password Recovery 5.4
| +---Yet Another Arj Cracker 1.0a
| +---ZIP Management Suite
| +---ZIP Password Finder 1.0
| +---ZIP Password Recovery
| ---ZIP_Password (DEMO)
+---Patchers, Loaders and Keygen Makers
| +---aPatch 0.33
| +---Byte Hunter 2.0
| +---Cheat Engine 2.50b2
| +---CodeFusion Wizard 3.0
| +---Cogen II 1.0
| +---Crack Maker 3.5
| +---DBC RLzer 3.44
| +---dUP 1.07
| +---Exe-Joiner 1.00
| +---Extreme Loader Generator 0.3
| +---FastPatch 1.0b
| +---Feuer's NFO File Maker 2.2
| +---Keygen Maker 0.71c
| +---Keygen Template 1.0
| +---Kill3xx's Patch Maker
| +---MaDX Smart Patcher
| +---matias921 Process Patcher 2.8
| +---Multi Patcher 1.0
| +---PastilleMaker 0.3
| +---Patch Maker 0.3
| +---PatchFX Generator 1.10
| +---PGPE 1.0b1
| +---PPF-O-Matic 2.0
| +---R!SC Process Patcher 1.5.1
| +---RTD Patch Engine 2.0
| +---RTD Win Patch Engine 1.0
| +---The Finishing Touch 2.6
| +---The Patcher 6.5
| +---Universal Loader 1.2
| +---Universal Patcher 2.0
| +---Variation Tool
| +---Visual Patch 1.0
| ---WinPatch Pro 1.2.11
+---Resource Editors
| +---Borland Resource Workshop 4.5
| +---Caption Changer
| +---eXeScope 6.41
| +---EZ Extract Resource 1.89
| +---Resource Builder 2.0.8
| +---Resource Hacker 3.4.0
| +---Restorator 2.52
| +---Symantec Resource Studio 1.0
| +---The Customiser
| +---TsiLang Components Suite 5.2.5
| +---WindowSe
| ---WindowsHacker
+---System Monitors
| +---Advanced Registry Tracer
| +---API Monitor
| +---API Spy 2.5
| +---ApiHooks 5.6
| +---ApiSpy
| +---Hack
| +---KGB 1.04
| +---MemSpy 1.20
| +---PC!Watch
| +---QuickView 2.8
| +---Spy & Capture 2.70
| +---SysInternals Software
| +---TSR Remover 1.01
| +---TweakNow 2003 1.4
| +---VB Spy 2.3
| +---VxD Monitor 1.0
| ---WS3
+---Tutorials and Guides
| +---Adding sections to PE Files_file
| +---Asprotect_file
| | ---sommario_file
| +---CodeBreakers
| +---Guide Generiche
| +---Peering Inside the PE_file
| +---Razzia's Tutorial For VB Cracking_file
| +---SoftIce & IDA
| +---The Krobar Collection
| +---The PE Format from Top to Bottom_file
| ---Unpacking UPX_file
+---Universit… Italiana Cracking (UIC)
| +---Assembly for Beginners
| +---Corsi per Newbies
| +---Corsi per Studenti
| +---Crackmes
| +---Newbies
| +---Packers Project
| +---Programmazione
| +---Riddle
| +---Store
| | ---Zai_FileCarbon_html Sha-1 keygenning o semplice serial-sniffing D_file
| +---Tutorials
| | +---Saggio sul PEditor_file
| | | ---xb-it_file
| | ---UIC FORM
| ---Varie
+---Unpackers, Dumpers and Decryptors
| +---ADump 1.0
| +---Advanced Memory Dumper 1.3
| +---Anti ASPack 0.2
| +---Anti Aspr 1.0
| +---Armadillo Deprotector
| +---Armadillo Killer 1.2
| +---AS-AntiProtect 0.98b
| +---AsDeprotect 0.6
| +---ASdoctor 1.01
| +---AspackDie 1.41
| +---AUP 1.0b
| +---Bye PE-Crypt 1.02
| +---CASPR v1.012
| +---Cool Memory Dumper 1.8
| +---CUP 3.4
| +---DeArmadillo 0.4
| +---DeASPack 2.11
| +---DeShrink 1.5
| +---DeTrap 1.1
| +---DeWin
| +---DumpEXE 2.5
| +---DumpFX
| +---Enlarge(Petite) 1.3
| +---FSG 1.33 Unpazker
| +---FSG Unpacker
| +---GTR 1.D
| +---GUS 1.95
| +---GUW32 1.0b8
| +---Iczelion Dump
| +---InstallSHIELD Decompiler 1.00b
| +---InstallSHIELD DeCompressor 3
| +---isDcc2
| +---PCrypt remover
| +---PEDump
| +---Pest Patrol 4.3
| +---Petite 2.2 UnPacker
| +---ProcDump 1.6.2
| +---QcAspack 1.0.1
| +---Stripper 2.11
| +---TE-Unlock 1.0
| +---tNO-Peunc 1.5b
| +---Tron 1.3
| +---Tron PRO 1.21
| +---Un-FSG 1.33.3
| +---Un-Pack 2.3
| +---UnAsPack 1.0
| +---UnASpr 1.0
| +---UnFSG 0.4
| +---Universal Unpacker 2.15.01
| +---UNP 4.12a
| +---Unpacker Archive
| +---UnPE-Pack 1.0
| +---unPEncrypt 0.31
| +---UnPEShield v0.1
| +---UnTiny 2.3 (PKLite)
| +---UnVBox
| +---UnYodaCrypter 1.2
| +---UPX Unpacker
| +---VBox Cleaner 1.0
| +---Win32Intro 0.75
| ---X-Tract 1.51
---Various Tools
+---Advanced Compare 1.20
+---AT-Slow 3.10
+---Base Calculator 1.3
+---Bat2Com
+---Batch Compiler
| ---DOS
+---Bin2Asc2
+---Bios 1.34.0
+---Comparer 0.13
+---Count 1.00b
+---Cracker 1.0
+---CrackLock 3.8.4
+---DateCracker 1.0
+---ECC Cracking Suite 1.5
+---eLiTeWrap 1.04
+---File Compare
+---GoboWrap 1.0b
+---Help Compiler
+---IconSuite 2.1.8
+---Intruder 1.31
+---MiniChainer 1.0
+---NFO Builder 2000 1.02
+---NoLimit 2.0
+---Opgen
+---Reboot Tool
+---RSA Tool 2.17
+---RVA Converter
+---SecMaker 2.0
+---ShoWin 2.0
+---Symbiote
+---VA-FO Converter
---ZeroAdd
 
N

nBD

Gość
wszystko spoko ale wg mnie (a mam juz pewne doswiadczenie) to 80% z tych rzeczy wam sie nie przyda. jedyne co potrzeba do SI (lub Olly, do ktorego coraz wiecej osob zaczyna sie przekonywac), IDA z zestawem sygnaturek FLIRT, DeDe do disasemblacji programikow w Delphi, jakies pe editor (LordPE), analizator plikow PEiD (peid.has.it), duzo wolnego czasu i zapalu do crackowania. na poczatek polecam crackmesy lamac (www.crackmes.prv.pl), pisane sa wlasnie po to
smile.gif
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Chyba ten material nadaje sie do tego tematu. Wbrew pozorom RE dll'ek Windowsa nie jest
takie trudne. Zreszta przekonaj sie sam. Milego czytania
<

re_icmp.rar
 

zoolek

Użytkownik
Dołączył
Lipiec 9, 2004
Posty
15
RE appletów Java to dopiero zabawa, szczególnie jeśli chodzi o czaty, czegoś fajnego można się nauczyć..
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Zdradz tajemnice - opisz co i jak. Ja nigdy nie myslalem o RE apletow bo nie widzialem takiej potrzeby. Chyba tez nigdzie nie natrafilem na zadnego tutora, kod etc. Jak mozesz to podaj jakies linki, moze fragment kodu...
smile.gif
 

zoolek

Użytkownik
Dołączył
Lipiec 9, 2004
Posty
15
Zacznę od zapodania linka : klik

RE appletów można podzielić w zasadzie na 3 grupy:

- rekompilacja (poprzez dekompilowanie klas dekompilatorem JAD)
- patchowanie kodu (deassemblacja => dodanie własnego kodu => ponowna assemblacja)
- patchowanie klas (hexedytorem po analizie)

Pierwsza metoda jest dosyć łatwa, ale tylko przy pracy z klasami, które nie zostały potraktowane obfuscatorem (ponieważ obfuscator miesza w pliku)
Można do tego użyć DJ Java Decompiler, pozmieniać to, co nam potrzeba i ponownie skompilować.

Druga metoda jest najtrudniejsza, ponieważ należy dobrze znać assemblera Javy. Jest nieco inny niż assembler powszechnie nam znany.
Jednak jego dobra znajomość pozwala na duże możliwości manewru na kodzie.
Oto narzędzia, które wykorzystuje się przy tej metodzie:

Jasper disassembler
Jasmin assembler

Trzecim sposobem, zarazem najchętniej przezemnie stosowanym jest patchowanie hexedytorem (coś jak cracking, ale nie do końca). Na początku należy się zaznajomić z interesującym nas kodem, poprzez zdekompilowanie go JAD-em, bądź Jode (polecam Jode, gdy klasa jest zabezpieczona obfuscatorem - automatycznie dekoduje on zakodowane ciągi tekstowe, przez co kod jest czytelniejszy). Gdy już przeanalizujemy interesujący nas fragment kodu..
szukamy hexedytorem (np. Winhex) warunku zapisanego w postaci oczywiście bajtów. Jak ? Najlepiej jest napisać prosty program w Javie zawierający właśnie ten fragment i drugi taki sam, tylko że z wartością np. 2 i po kompilacji porównać oba pliki ze sobą. Wszystko będzie widać jak na dłoni. ;-)
Gdy już wiemy, jak wygląda bajtowo ten kod, możemy przystąpić do zmiany naszej wartości. Ale co zrobić, gdy takich wartości jest więcej niż jedna ? Tu pozostaje metoda prób i błędów. Zmieniamy znalezioną wartość, włączamy Jode bądź DJ Java Decompiler, wczytujemy naszą klase i sprawdzamy, czy została ona zmieniona. Jeśli nie, zamykamy dekompilator, przywracamy w zmodyfikowanym pliku starą wartość i zmieniamy następną i tak do skutku - gwarancja, że nam się uda, jest 100-procentowa. Wystarczy chcieć. ;-)
Należy jeszcze wspomnieć, że w instrukcjach warunkowych w Javie liczba 1 jest równa bajtowo 04, liczba 2 = 05, liczba 3 = 06 itd.

Zadanie ogólnie jest utrudnione, jeśli klasy są zabezpieczone obfuscatorem, ale to tylko dodaje uroku do całej tej zabawy.. ;-) Jeśli są jeszcze jakieś pytania - pisać, chętnie odpowiem. ;-)
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
To dopier kosmos
<
Podobnie jak standard jakis tam Asma pod Linuxami. Brakuje mi jeszcze jednego - mianowicie czemu chcemy RE aplety Javy? W zwyklym RE wiadomo chodzi nam o przeanalizowaniu jakiegos kodu, rekonstrukcji do jezyka w ktorym zostal napisany, rozpisaniu jakiejs procki kodujacej, rozpakowaniu, poznaniu nieudokumentowanych struktur, funkcji, obiektow (Windows system) a w przypadku Javy? Moze jakis przykled (wystarczy teoretyczny) z zycia wziety.
 
Do góry Bottom