Entries from 2009-03-01 to 1 month

Perl で Win32::API プログラミング入門

ActivePerl (Windows版) には Win32::API - Perl Win32 API Import Facility - metacpan.org が付属しているので、今日からすぐに Win32::API を利用したプログラミングが出来ます。簡単なメッセージボックスを表示するPerlプログラムは以下になります。 #!/…

Perl で動的 x86_64 プログラミング

相対ジャンプのcall命令を動的に生成できるようにしておくとx86実行コード中に任意の文字列を埋め込めるので大変便利です。● Linux/x86_64 で /usr/bin/perl -e 'print "Hello, world!\n"' を実行するサンプル #!/usr/bin/perl -w sub P{"\xe8".pack('L',1+l…

はじめての x86_64/Linux プログラミング

$ vi amd64linux.pl #!/usr/bin/perl use DynaLoader; my $x="" . "\x48\xb8Hello64!" # mov 'Hello64!',%rax . "\x50" # push %rax . "\x48\x89\xe6" # mov %rsp,%rsi . "\x48\xc7\xc7\x01\x00\x00\x00" # mov $0x1,%rdi . "\x48\xc7\xc2\x08\x00\x00\x00" …

FreeBSD/i386 な環境で perl のコードを実行する方法

今日からはじめての FreeBSD プログラミング、ということで、 まず最初に execve() を使って Hello, world! するプログラムを書きました。 8048080: 68 2d 65 00 00 push $0x652d 8048085: 89 e6 mov %esp,%esi 8048087: 68 6c 00 00 00 push $0x6c 804808c:…