Pendahuluan

Tutorial singkat ini akan membahas cara melakukan modifikasi pada evalhook agar dapat menyimpan outputnya pada file.

Langkah-langkah

Pertama, cloning terlebih dahulu repositori evalhook yang ada di github dengan perintah berikut ini:

git clone https://github.com/unreturned/evalhook

Selanjutnya, pindah ke sub direktori evalhook.

cd evalhook

Kita akan melakukan editing terhadap file evalhook.c. Berikut ini adalah penjelasannya:

    74      yes = 0;
    75      while (1) {
    76          c = getchar();
    77          if (c == '\n') break;
    78          if (c == 'y' || c == 'Y') {
    79              yes = 1;
    80          }
    81      }
    82
    83      if (yes) {
    84          return orig_compile_string(source_string, filename TSRMLS_CC);
    85      }
    86      // KITA_AKAN_MENYISIPKAN_FUNGSI_MENYIMPAN_FILE_DI_SINI //
    87      zend_error(E_ERROR, "evalhook: script abort due to disallowed eval()");
    88  }

Perhatikan baris 86 pada potongan kode evalhook di atas. Kita akan menyisipkan fungsi untuk menyimpan output evalhook ke file pada baris tersebut. Selain itu akan ada beberapa penyesuaian, yaitu kita akan menanyakan terlebih dahulu kepada pengguna apakah ingin menyimpan outputnya pada file. Agar lebih mudah, silakan clone evalhook yang ada pada repositori ini di github. Perlu diingat bahwa patch tersebut sifatnya adalah quick hack yang artinya hanya untuk keperluan menyimpan output saja, silakan modifikasi jika ingin menyesuaikan nama filenya.

Setelah itu melakukan kloning dari repositori evalhook yang telah dipatch tersebut, lanjutkan prosesnya dengan perintah berikut ini:

phpize
./configure
make -j4
sudo make install

Terakhir adalah, cara menggunakannya seperti ini:

php -d extension=evalhook.so file.php

Penutup

Sekian tutorial singkat kali ini, semoga bermanfaat. Terima kasih kepada Tuhan Yang Maha Esa, dan Anda yang telah membaca tutorial ini.

pas mau di patch kok malah keluar gini gan?

➢patch < evalhook.diff (Stripping trailing CRs from patch; use --binary to disable.) patching file evalhook.c Hunk #1 FAILED at 28. Hunk #2 FAILED at 50. patch unexpectedly ends in middle of line Hunk #3 FAILED at 66. 3 out of 3 hunks FAILED -- saving rejects to file evalhook.c.rej

Terus muncul 2 file ,evalhook.c.orig sma evalhook.c.rej

Apa ada yang salah?

Tutorialnya sudah saya update, biar gampang kloning aja dari repositori yang sourcenya sudah dipatch.

Makasih gan udah di cba dan brhsil , smoga sukses trus buat kmu 👍