Article View: pl.comp.os.linux.programowanie
Article #72866bash zamienia mi cudzysłowy na apostrofy w skrypcie
From: Jivanmukta
Date: Sun, 10 Feb 2019 15:40
Date: Sun, 10 Feb 2019 15:40
35 lines
2396 bytes
2396 bytes
Piszę prosty obfuscator PHP przy pomocy bash i php.
Próbuję sprawdzić czy kod źródłowy zawiera zmienne zmiennych (tzn. napis
$$variable w PHP).
Robię to tak:
preg_match_file() {
php <$1 >>$2 -r "\$f = fopen('php://stdin', 'r'); while (\$line =
fgets(\$f)) { while (preg_match('$3', \$line, \$matches)) { if
(!strstr('$5', \$matches[$4])) echo \$matches[$4]; \$line =
preg_replace('$3', '', \$line); } } fclose(\$f);"
}
preg_match_file $f /tmp/simplephpobfuscator_error '\$\$(\w|\d|_)+' 1 ""
tzn. przekazuję do funkcji bashowej preg_match_file wyrażenie regularne
\$\$(\w|\d|_)+
I tu pojawia się problem bo (nie wiem dlaczego bash zamienia mi
cudzysłowy " na apostrofy '). Tzn jak wywołam mój skrypt:
bash -x ./simplephpobfuscator.sh 2>stderr.txt
to w stderr.txt mam:
+ preg_match_file rozgloszenia/application/controllers/Admin.php
/tmp/simplephpobfuscator_error '\$\$(\w|\d|_)+' 1 ''
+ php -r '$f = fopen('\''php://stdin'\'', '\''r'\''); while ($line =
fgets($f)) { while (preg_match('\''\$\$(\w|\d|_)+'\'', $line, $matches))
{ if (!strstr('\'''\'', $matches[1])) echo $matches[1]; $line =
preg_replace('\''\$\$(\w|\d|_)+'\'', '\'''\'', $line); } } fclose($f);'
PHP Warning: preg_match(): Delimiter must not be alphanumeric or
backslash in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
PHP 2. preg_match() Command line code:1
Nie rozumiem dlaczego bash pozamieniał " na ' i nie wiem jak temu
zapobiec. Proszę o pomoc.
Technical Details
Message-ID:
<q3pgko$2kfqm$1@portraits.wsisiz.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.public-gprs639615.centertel.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!.POSTED.public-gprs639615.centertel.pl!not-for-mail From: Jivanmukta <jivanmukkta@poczta.onet.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: bash zamienia mi cudzysłowy na apostrofy w skrypcie Date: Sun, 10 Feb 2019 16:40:05 +0100 Organization: http://www.wit.edu.pl Message-ID: <q3pgko$2kfqm$1@portraits.wsisiz.edu.pl> Mime-Version: 1.0 Injection-Date: Sun, 10 Feb 2019 15:40:08 -0000 (UTC) Injection-Info: portraits.wsisiz.edu.pl; posting-host="public-gprs639615.centertel.pl:5.184.41.192"; logging-data="2768726"; mail-complaints-to="abuse@wsisiz.edu.pl" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 X-Mozilla-News-Host: news://news.icp.pl:119 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit