Article View: pl.comp.lang.php
Article #232558jak odróżnić zmienne globalne od lokalych przy parsowaniu kodu PHP
From: RM
Date: Mon, 10 Aug 2020 06:32
Date: Mon, 10 Aug 2020 06:32
16 lines
2340 bytes
2340 bytes
Piszę obfuskator PHP w C++. Chciałbym, żeby obfuskator działał z dowolnym frameworkiem PHP. W tym celu potrzebuję prasować framework, żeby wyodrębnić identifkatory zarezerwowane przez framework (żeby tych nie zamieniać na losowe - generowane przez obfuskator). Przy czy istotne jest rozróżnienie zmiennych globalnych i lokalnych we frameworku, bo globalne nie mogą być zastępowane w generowanym kodzie PHP (jeśli framework zawiera np. tablicę globalną $config to wygenerowanym kodzie ta nazwa musi być zarezerowana ni zamieniana na losowy, generowany ciąg znaków). Powstaje więc pytanie jak przy parsowaniu frameworka (robię to wyrażeniami regularnymi) odróżnić zmienne globalne od lokalnych. Nie każda zmienna globalna $x musi mieć deklarację "global $x;" w jakieś funkcji frameworka, więc jest to problem. Jeśli w aplikacji PHP występuje użycie zmiennej globalnej frameworka o nazwie $config to nie powinno ono być obfuskowane, a jeśli występuje użycie zmiennej nieglobalnej (lokalnej lub paramtru) o nazwie $x, to to powinno być obfuskowane.
Technical Details
Message-ID:
<rgqplt$3efb3$1@portraits.wsisiz.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!78.46.58.241.MISMATCH!weretis.net!feeder7.news.weretis.net!usenet.goja.nl.eu.org!aioe.org!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!wsisiz.edu.pl!.POSTED.user-5-173-128-224.play-internet.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!78.46.58.241.MISMATCH!weretis.net!feeder7.news.weretis.net!usenet.goja.nl.eu.org!aioe.org!peer03.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!wsisiz.edu.pl!.POSTED.user-5-173-128-224.play-internet.pl!not-for-mail From: RM <robert_magdziarz@wp.pl> Newsgroups: pl.comp.lang.php Subject: jak odróżnić zmienne globalne od lokalych przy parsowaniu kodu PHP Date: Mon, 10 Aug 2020 08:32:24 +0200 Organization: http://www.wit.edu.pl Message-ID: <rgqplt$3efb3$1@portraits.wsisiz.edu.pl> Mime-Version: 1.0 Injection-Date: Mon, 10 Aug 2020 06:32:29 -0000 (UTC) Injection-Info: portraits.wsisiz.edu.pl; posting-host="user-5-173-128-224.play-internet.pl:5.173.128.224"; logging-data="3620195"; mail-complaints-to="abuse@wsisiz.edu.pl" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 X-Mozilla-News-Host: news://news.icp.pl:119 X-Received-Bytes: 2063 X-Received-Body-CRC: 2790427744 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit