
PIOF - هو إطار عمل ديناميكي ومعيار للـ PHP.
من المفيد للمطورين والمهندسين العكسيين ومحلل البرامج الضارة وباحث الضعف. مع piof يمكنك:
تم اختباره في:
PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.10-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
Martino - Twitter.com/martinolessio
Alessandro - Twitter.com/rhpco
git clone https://github.com/ingenuity-ninja/piof.git
cd piof
./run.sh
يتم استخدام حاوية Docker لمراحل البناء والاختبار. استخدم قشرة الحاوية للتفاعل مع بيئة Piof:
root@4e7b7dd9f362:/opt/piof/modules#
امتداد PHP الذي تم إنشاؤه متاح في /opt/piof/modules
root@4e7b7dd9f362:/opt/piof/modules# ls -lah
total 100K
drwxr-xr-x 2 root root 4.0K Feb 19 20:55 .
drwxr-xr-x 1 root root 4.0K Feb 19 20:55 ..
-rwxr-xr-x 1 root root 91K Feb 19 20:55 piof.so
يمكنك إما تضمينه في php.ini أو استخدامه من سطر الأوامر.
عندما يتم تمكين الامتداد في php.ini يمكنك تنفيذ PHP كالمعتاد ، على سبيل المثال:
root@4e7b7dd9f362:/etc# php -r "system("ls");"
adduser.conf
aliases
alternatives
apache2
apt
bash.bashrc
bindresvport.blacklist
ca-certificates
ca-certificates.conf
cron.d
[...]
لاستخدام الوحدة النمطية في وقت التشغيل ، يمكنك استخدام الأمر التالي:
php -dextension=/opt/piof/modules/piof.so -r "system("ls");"
سجلات piof في /var/log/piof*
تقوم وحدات التثبيت بتسجيل معلومات حول تنفيذ الحوض:
root@4e7b7dd9f362:/etc# tail -f /var/log/piof.info.log
Feb 19 21:05:15 4e7b7dd9f362 piof - system - hook[155]: Arguments 1
Feb 19 21:05:15 4e7b7dd9f362 piof - system - hook[155]: Parameter ls
Feb 19 21:12:17 4e7b7dd9f362 piof - md5 - hook[160]: Arguments 1
Feb 19 21:12:17 4e7b7dd9f362 piof - md5 - hook[160]: Parameter admin
يتم تسجيل جميع الأخطاء الداخلية في /var/log/piof.error.log
تقع وحدات التثبيت في /opt/piof/hooks . تم تصميم هذه الوحدات النمطية وتحميلها بشكل ديناميكي بواسطة امتداد Piof Core ، لذلك يجب أن تكون متوفرة دائمًا مع piof.so يتم تنظيم الوحدات النمطية بشكل هرمي في الدلائل: يرتبط كل دليل بالوعة ، ويحتوي كل واحد على ملف hook.c وملف hook.h
root@42e0da0df931:/opt/piof/hooks# ls -lah
total 28K
drwxrwxr-x 1 root root 4.0K Feb 19 20:55 .
drwxr-xr-x 1 root root 4.0K Feb 19 20:55 ..
drwxr-xr-x 2 root root 4.0K Feb 19 20:55 build
drwxrwxr-x 2 root root 4.0K Feb 19 20:24 eval
drwxrwxr-x 2 root root 4.0K Feb 19 20:24 include
drwxrwxr-x 2 root root 4.0K Feb 19 20:24 md5
drwxrwxr-x 2 root root 4.0K Feb 19 20:24 system
و
root@42e0da0df931:/opt/piof/hooks# ls -lah include/
total 16K
drwxrwxr-x 2 root root 4.0K Feb 19 20:24 .
drwxrwxr-x 1 root root 4.0K Feb 19 20:55 ..
-rw-rw-r-- 1 root root 943 Feb 19 20:24 hook.c
-rw-rw-r-- 1 root root 356 Feb 19 20:24 hook.h
أثناء مرحلة البناء ، يقوم PIOF بتجميع جميع الوحدات النمطية ونقل الملفات .so تم إنشاؤها في /opt/piof/hooks/build
root@42e0da0df931:/opt/piof/hooks/build# ls -lah
total 184K
drwxr-xr-x 2 root root 4.0K Feb 19 20:55 .
drwxrwxr-x 1 root root 4.0K Feb 19 20:55 ..
-rwxr-xr-x 1 root root 43K Feb 19 20:55 eval.so
-rwxr-xr-x 1 root root 43K Feb 19 20:55 include.so
-rwxr-xr-x 1 root root 44K Feb 19 20:55 md5.so
-rwxr-xr-x 1 root root 44K Feb 19 20:55 system.so
make clean
phpize
./configure
make
cd /opt/piof/hooks/eval/
gcc -shared -o eval.so -fPIC hook.c -g -Wall -I -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/Zend -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/usr/include/php/20170718 -I/usr/include/php/20170718/main -I/usr/include/php/20170718/TSRM -I/usr/include/php/20170718/Zend -I/usr/include/php/20170718/ext -I/usr/include/php/20170718/ext/date/lib -I ../../
mv eval.so ../build
md5 php -dextension=/opt/piof/modules/piof.so -r "echo md5("admin");"
system وظيفة مدمن مخدرات php -dextension=/opt/piof/modules/piof.so -r "system("ls");"
ترخيص BSD 3-طبقة (BSD-3-CAUSE)