2015-03-31 218 views
-1

我解碼我的一些Ioncube公司編碼的PHP頁面,但它包含的代碼與混淆的PHP函數的名稱:如何反轉php混淆代碼?

例子:

_obfuscate_DRYWMSUQDzIXCSohIQMqCz0NJiIUBSIÿ("Location: error.php"); 

這是頭功能的代碼。

header("Location: error.php"); 

你能請人解釋我如何將這種反混淆這個代碼?

+1

[解碼混淆PHP源代碼]可能的重複(http://stackoverflow.com/questions/8020457/decode-obfuscated-php-source-code) – D4V1D 2015-03-31 09:20:09

+0

問誰曾經在第一個地方 – 2015-03-31 09:29:01

+0

這似乎是這樣obsficated一個是不同的,因爲這沒有'\'或數字@ d4v1d:/ – 2015-03-31 09:36:22

回答

0

混淆是設計是不可逆的 - 如果有一種方法可以很容易地反轉混淆,那麼使用混淆將是毫無意義的。把它看成是散列函數的名稱 - 雖然它可能可以猜解原來的名字,你就必須把一些嚴肅的努力進去,包括:

  • 找出散列算法使用哪種
  • 獲取使用加密密鑰(這是在編碼過程中指定)
  • 猜解每一個函數名,從a()開始my_function_name_that_does_something()

正如在評論中指出的,你唯一現實的機會在檢索原始源代碼是聯繫原始開發者。你不會期望從C代碼編譯的二進制文件中獲得原始的源代碼,對嗎?

+0

呃。那麼PHP Processor如何知道這個混淆聲明的功能? – 2015-04-08 05:41:49

+0

@SasithMaduranga他們沒有 - 項目中的所有函數都被哈希到相同的混淆名稱,他們不需要知道實際的函數名稱。這會打破諸如變量變量('$$ var')和'eval()'之類的東西,但這些東西不應該以任何方式用於「好代碼」中。據我所知,系統功能應該仍然沒有被混淆和可讀。 – SebiH 2015-04-08 06:18:29