perl extrahieren
-
hi,
kan mir ein guru gerade mal ein kleines perl skript machen, welches aus einer datei wie dieser die zahlenfolge in jeder zeile zwischen dem doppelpunkt und dem pipe zeichen extrahiert und diese zahlenfolge von hex ins binär format sequentiell in eine neue datei schreibt? ich will daraus eben die opcodes extrahieren und eie reine binary erzeugen, ohne das ganze listing zeug...vielen dank
[/code]
| # Execution begins at address 0 0x000: | .pos 0 0x000: 308400040000 | init: irmovl Stack, %esp # Set up Stack pointer 0x006: 308500040000 | irmovl Stack, %ebp # Set up base pointer 0x00c: 7024000000 | jmp Main # Execute main program | | # Array of 4 elements 0x014: | .align 4 0x014: 0d000000 | array: .long 0xd 0x018: c0000000 | .long 0xc0 0x01c: 000b0000 | .long 0xb00 0x020: 00a00000 | .long 0xa000 | 0x024: 308004000000 | Main: irmovl $4,%eax 0x02a: a008 | pushl %eax # Push 4 0x02c: 308214000000 | irmovl array,%edx 0x032: a028 | pushl %edx # Push array 0x034: 803a000000 | call rSum # Sum(array, 4) 0x039: 10 | halt |
-
Dieser Thread wurde von Moderator/in árn[y]ék aus dem Forum Webzeugs in das Forum Projekte verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ungetestet, da ich zu faul bin %hextobin auszufuellen (musst du noch selbst machen):
#!/usr/bin/perl use strict; my $inputfile = 'bla.txt'; # CHANGE ME open(my $in, $inputfile); my %hextobin = ('0' => '0000', ... ); # FILL ME for my $line (<$in>) { if ($line =~ /[0-9a-fA-F]: ([0-9a-fA-F]+)\s*/) { for my $c (split //, $1) { print $hextobin{$c}; } print "\n"; } } print "\n";
-
Dieser Thread wurde von Moderator/in Korbinian aus dem Forum Projekte in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
vielen dank Blue-Tiger, ich werde es gleich mal testen.
-
Wer braucht schon Perl, wenn er die Shell hat *g*
for i in `cut -f 4 -d ' ' foo`; do echo -e "f=base(2)\n0x$i\nexit" | calc; done
Unter Verwendung von calc.
-
Na hatte mich im ersten Post etwas unglücklich ausgedrückt, aber ich habe es jetzt so hinbekommen, wie ich es wollte:
#!/usr/bin/perl use strict; # create raw Y86 binary from .yo listing file for my $line (<>) { if ($line =~ /[0-9a-fA-F]: ([0-9a-fA-F]+)\s*/) { print pack("H*", $1); } }
vielen dank an alle