PDA

Просмотр полной версии : Text2Hex на Perl! Help!


$p01nt
06.02.2009, 21:15
Ребят, помогите пожалуйста, в скрипте нужно перевести данные из text в hex (тут могу ошибаться) т.е. в формат который используется при mysql injection :)
Например
admin в 0x61646D696E
Стандартная функция hex почему то переводит не верно.
Например:
admin в 173.

Есть скрипт на PHP, может кому то поможет понять суть и помочь:

[QUOTE]<?
$fout=fopen('url_in_HEX.txt','a+');
$source_column2 = fopen('source.txt','r');
$source_column1 = fgets($source_column2);
fwrite ($fout,$source_column1 . "\r");
fclose($source_column2);
function ascii2hex($ascii) {
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
return $hex;
}
$source_column2 = ascii2hex($source_column1);
$patterns[0] = "/ /";
$replacements[0] = "";
$source_column3 = preg_replace($patterns, $replacements, $source_column2);
$source_column3 = "0x$source_column3";
$patterns[0] = "/ /";
$replacements[0] = "%";
$source_column4 = preg_replace($patterns, $replacements, $source_column2);
$source_column4 = "%$source_column4";
echo "\n";
echo $source_column3;
echo "\n";
echo $source_column4;
echo "\n";
fwrite ($fout,$source_column3 . "\r");
fwrite ($fout,$source_column4 . "\r");
fclose($fout);
?>/QUOTE]

Волонтеру +++ гарантирован :)

BlackSun
06.02.2009, 21:31
На php всё гораздо проше -
<?
echo '0x'.bin2hex($text);
?>

$p01nt
06.02.2009, 21:47
Вопрос решен!
#!/bin/perl

use strict;
use warnings;

my $str = "some string";
my $hex = unpack('H*', "$str");

my $len = length($hex);
my $start = 0;

print "x'";
while ($start < $len) {
print substr($hex,$start,2);
$start += 2;
}
print "'\n";