Php kesin replace etme problemi
Javascript şifreleme hakkında bir sınıf yazdım fakat şöyle bir problemim var.
Obje olarak tanımlanann fonksiyonlarım var bu kodlar sistem tarafından otomatik olarak oluşturuyorlar.
Bazı yardımcı fonksiyonlarım var ve burda isim benzeşmesi olan fonksiyonlarda sapıtıyor bunu kesin olarak nasıl replace ederim ?
Örnek olarak anlatacak olursam
var Config = {
load:function(){
},
get:function(){
},
upload:function(){
},
randomget(){
},
};
Config.load();
Config.upload();
Config.get();
Config.randomget();
böyle bir yapıya sahip benim yazdığım şifreleme sınıfında Config rastgele bir değer alıyor diğer değerlerde değişiyor yani bu şekilde oluyor.
var Adkjhgfaksjhdg = {
load:function(){
},
get:function(){
},
upload:function(){
},
randomget(){
},
};
Adkjhgfaksjhdg.load();
Adkjhgfaksjhdg.upload();
Adkjhgfaksjhdg.get();
Adkjhgfaksjhdg.randomget();
Fakat objenin içindeki fonksiyonlarda fonksionları bulurken şöyle oluyor.
var Adkjhgfaksjhdg = {
{random1}:function(){ // {load}
},
{random2}:function(){ // get
},
up{random1}:function(){ // up{load} daha önce buldu ve değiştirdi fakat başındaki up kısmı kalıyor
},
random{random2}(){ // random{get} aynı şekilde
},
};
Adkjhgfaksjhdg.{random1}();
Adkjhgfaksjhdg.up{random1}();
Adkjhgfaksjhdg.{random2}();
Adkjhgfaksjhdg.random{random2}();
burada sapıtma oluyor.
php kodları
private function encodeFunctions(){
$tokens = j_token_get_all($this->code);
$alph = "abcdefghijklmnoprstuvyzxABCDEFGHIJKLMNOPRSTUVYZX";
for($t=0;$t<count($tokens);$t++) {
if($tokens[$t][0] == 2 && ($tokens[$t+1][1] == ":" && $tokens[$t+2][1] == "function") && !in_array($tokens[$t][1], $this->functions)){
$this->functions[] = $tokens[$t][1];
}
}
for($i=0;$i<count($this->functions);$i++){
$function = $this->functions[$i];
$new_function = $this->random(15);
if(isset($alph[$i]) && strpos("var ".$alph[$i], $this->code) === false){
$new_function = "f_".$alph[$i];
}
$this->code = str_replace($function.":", $new_function.":", $this->code);
$this->code = str_replace(".".$function."(", ".".$new_function."(", $this->code);
}
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!