Dette indlæg er alene udtryk for skribentens egen holdning.

Nedbrydning af den binære grænse

15. maj 2013 kl. 12:1210
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Der sker et stort informationstab når vi compilerer fra kildetekst til binær og jeg tænker ikke bare på at de få sporadisk placerede kommentarer elimineres.

Reverse-engineering er en god og gammel sport i branchen, som har fået en særlig opblomstring i virus/malware branchen.

Men det er stadigvæk en meget manuel process og det vedbliver det, så vidt jeg har forstået min Turing, med at være.

Wei-Ming Khoo, fra Ross Andersons team ovre i Cambridge, har prøvet en ny vinkel på den overordnede problematik: Ofte behøver man ikke disassemblere koden, hvis man bare kan finde kildeteksten.

Artiklen fortsætter efter annoncen

F.eks er rigtig meget kode compileret imod standardbiblioteker og derfor kan man, med ret godt resultat, genkende dem på kodemorfologien, uden at grave sig ned i præcis hvad koden egentlig gør.

I bund og grund har han bygget en søgemaskine der genkender funktioner i binære programmer og hans resultater er faktisk ret imponerende.

Som jeg forstår det, er metoden temmelig arkitektur-neutral, dvs. man burde kunne finde glibc::qsort() i en MIPS binær, selvom søgemaskinen kun har set en i386 version tidligere.

Den søgemaskine kan blive en slem hovedpine for folk der "glemmer" at læse det med småt i Open Source licenser.

phk

10 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
8
16. maj 2013 kl. 15:02

Det lyder som en rigtig god idé han har fundet på. Lidt ligesom et rainbow attack, bare med kildekode.

7
16. maj 2013 kl. 13:00

Er der nogen som kan fortælle hvor mange gange gpl har sejret i retten?

10
17. maj 2013 kl. 23:22

@Anders Rosendal

Er der nogen som kan fortælle hvor mange gange gpl har sejret i retten?

Mange gange Anders :) Jeg kan ikke sætte et tal på, men jeg kan huske det fra overskrifter på Slashdot gennem årenes løb. En hurtig google søgning ser ud til at bekræfte det:

https://www.google.dk/search?q=FSF+wins+in+court

Jeg har ikke selv prøvet at stikke nogen til FSF. Det til trods kender jeg flere firmaer der bygger ovenpå især OpenWRT distroen, men hvor det er aldeles umuligt at få source kode.

Jeg har gået og grublet på om man skulle stikke synderne. Ikke kun for at tilfredsstille den indre svinehund, også fordi det havde været nyttigt på mit tidligere job, hvis jeg kunne få source koden (og evt. en komplet build-chain) til deres produkt.

3
15. maj 2013 kl. 14:02

Vinklen med misbrug af open-source havde jeg ikke lige set komme (hvilket er forfriskende).

Men er problemet med den slags misbrug ikke oftest, at rettighedshaverne ikke har (økonomisk) overskud til at tage sagen op?

9
17. maj 2013 kl. 10:11

Vinklen med misbrug af open-source havde jeg ikke lige set komme (hvilket er forfriskende).

Der findes jo en del produkter (f.eks. Antelink), der kan hjælpe virksomheder (og Open Source organisationer!) med at sikre at de er på dydens smalle sti m.h.t. licenser. De fungerer ved at samle biblioteker af tilgængelig OpenSource produkter, og scanne kundernes kode for at checke at en udvikler eller underleverandør ikke bare copy-paster kode og kalder det deres egen.

Disse kildekodescans ville kunne komplementeres med binære scans. Det ville være en herlig "give tilbage til OSS"-gestus hvis den slags firmaer tillod offentligheden at scanne binær kode på den måde, så OSS-vagthunde kunne checke closed-source produkter imod dem. (Bemærk dog at mange closed source licenstekster har jo klausuler imod reverse-engineering, men hvis først der findes en rygende pistol er det nok ligemeget).

4
15. maj 2013 kl. 17:42

Der er noget med at hvis man copyrighter sin OSS til FSF, så tager de slåskampen...

/Anders

5
15. maj 2013 kl. 18:20

Af hvad jeg ved er den god nok. FSF tager slåskampen - de har også nogen til at holde øje med om der er nogen der overtræder GPL. Det er sket at nogle firmaer tror at GPL=Public Domain og de firmaer har de også trukket i retten. Pt har de Illiad i sigtekornet: http://gpl-violations.org/news/20071120-freebox.html

De har haft fat i D-link: der påstod:

Defendant further argues that the GPL is invalid due to violations of Art. 81 of the Treaty establishing the European Community and Section 1 of the German Antitrust Act (GWB) as it prejudices trade between Member States and leads to a restriction on competition. In addition, Defendant asserts that the conditions of the GPL do not apply because of the principle of exhaustion.

Se PDF link på http://gpl-violations.org/news/20061110-dlink-judgement_frankfurt_en.html

6
15. maj 2013 kl. 20:38

FSF tager slåskampen - de har også nogen til at holde øje med om der er nogen der overtræder GPL.
Det er sket at nogle firmaer tror at GPL=Public Domain og de firmaer har de også trukket i retten.

Når distributionen af FSFs software sker udenfor de betingelser som FSF stiller via GPL, så forsøger FSF sig så vidt jeg ved først at bringe distributionen i orden (dvs. at kildeteksten stilles til rådighed).

Hvis det ikke lykkes og sagen ender i retten, så skal det for præcisionens skyld nævnes at retssagen i så fald handler om en overtrædelse af loven om ophavsret, og ikke "om der er nogen der overtræder GPL".

1
15. maj 2013 kl. 12:31

Der sker et stort informationstab når vi compilerer fra kildetekst til binær og jeg tænker ikke bare på at de få sporadisk placerede kommentarer elimineres.

Af og til - når jeg er i det humør - sætter jeg flaget -comment2speech på compilerkommandoen, som gør at kommentarer læses højt når kodeafviklingen kommer forbi dem.

Det nedsætter naturligvis performance, men kan også være meget lærerigt når man hører det man selv eller andre tænkte, da de var i gang med at kode en bestemt funktion.