Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Assembler » Strange Code

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.02.2016, 11:48 Uhr
Hans
Library Walker
(Operator)


Hi,

nachdem ich einem Bekannten kürzlich einen seltsamen C-Code gezeigt habe, bekam ich später folgendes präsentiert:

C++:
/* compile with `gcc -Wall -O0 -static -s -o mainarray mainarray.c` */
const unsigned int main[] = {
    3850979413, 440,        113408,     2372337664,
    4149,       3586560,    84869120,   15544,
    266023168,  1970426885, 1260418163, 1651469417,
    744846457,  660957216,  1700929651, 1919251572,
    1953068832, 541270120,  1768382829, 1752440931,
    2032168545, 539915631,  2416587580, 93
};


Das funktioniert nur unter 64-Bit Linux (Intel-kompatible CPU) und gibt dort einen Text aus. Unter Windows schmiert es ab.

Im Prinzip handelt es sich um ein Hello-World in Assembler, das auf das 64-Bit-API von Linux zugeschnitten ist, und als C-Programm getarnt daher kommt. Die Frage ist jetzt, wie ich an den Assemblertext komme, denn gcc liefert mit der Option -S nur folgendes:

Code:
    .file    "mainarray.c"
    .globl    _main
    .section .rdata,"dr"
    .align 32
_main:
    .long    -443987883
    .long    440
    .long    113408
    .long    -1922629632
    .long    4149
    .long    3586560
    .long    84869120
    .long    15544
    .long    266023168
    .long    1970426885
    .long    1260418163
    .long    1651469417
    .long    744846457
    .long    660957216
    .long    1700929651
    .long    1919251572
    .long    1953068832
    .long    541270120
    .long    1768382829
    .long    1752440931
    .long    2032168545
    .long    539915631
    .long    -1878379716
    .long    93
    .ident    "GCC: (GNU) 4.8.1"



Das ist auch nicht viel aufschlussreicher, als der C-Code...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 20.02.2016 um 11:51 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.02.2016, 12:19 Uhr
ao

(Operator)


Mit objdump vielleicht. Lies mal hier, die Anwendung ist eine andere, aber vielleicht kommst du damit weiter: http://stackoverflow.com/questions/1737095/how-do-i-disassemble-raw-x86-code
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.02.2016, 14:08 Uhr
Hans
Library Walker
(Operator)


Ja danke, das hilft schon ein Stück weiter.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Assembler ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: