Noxious schreef op woensdag 11 augustus 2010 @ 11:24:
Functienamen gaan verloren, comments gaan verloren, variabelenamen gaan verloren, enz enz
en bijv:
code:
1
2
3
4
5
6
| function optellen($getal1, $getal2){
$uitkomst = $getal1 + $getal2;
return $uitkomst;
}
print(optellen(1,3));
print(optellen(8,12)); |
Zou best na het compileren en reverse engineren kunnen terugkomen als:
code:
1
2
3
4
5
6
7
8
| $a = 1;
$b = 3;
$c = $a + $b;
print($c);
$d = 8;
$e = 12;
$f = $d + $e;
print($f); |
Als ik me goed herinner kan je aan de structuur van ASM (of zelfs machine code) zien welke delen van de code functies zijn, aangezien een functie een stukje code is wat apart staat en waar een branch naar toe springt. Bij het eindigen van de functie kan eventueel het resultaat terug gegeven worden en kan een branch naar de oorspronkelijke positie gedaan worden. Ook gaat dan de program counter bijgehouden worden etc.
Het lijkt me niet dat in de gecompileerde bestanden elke functie volledig uitgeschreven is voor elke keer deze aangeroepen wordt.
De functies lijkt me niet zo een probleem, dan naam van de functies en variabelen ben je kwijt maar ook dat lijkt me geen zware uitdaging.
Wat me eerder lijkt wat zwaar wordt zijn bepaalde gegevens structuren, hoe weet je hoe een bepaalde classe er uit zag, wat voor methodes had die en welke properties. Zaken als een struct, welke variabelen zaten daar in en hoe zit het met de types van de variabelen. Kan je in de computer code zien wat voor resolutie een variabele heeft. Bv het verschil tussen een double en een float, die aan andere precisie heeft.
Als je bij het compilen andere software gebruikt is het resultaat natuurlijk ook anders, een gcc/g++ zal een ander resultaat geven als een borland c++ of een visual c++ compiler. Al geeft dat niet altijd een probleem, het meeste verschil zit in de optimalisaties ed. en als die optimalisaties al in de (reverse engineerde) broncode zitten dan is dat geen probleem, zolang de code maar terug compileert en hetzelfde resultaat geeft.
[
Voor 19% gewijzigd door
kluyze op 11-08-2010 11:40
]