Guest User

Obf

a guest
Oct 19th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 3.89 KB | None | 0 0
  1. global $zmienne[1]
  2. global $zmienne2[1]
  3.  
  4. ; dodaje zmienna
  5. func __AddVar($_SO,$_SO2)
  6.     for $i = 0 to UBound($zmienne) -1
  7.         if $zmienne[$i] = "" then
  8.             $zmienne[$i]=$_SO
  9.             $zmienne2[$i]=$_SO2
  10.             return 0
  11.         EndIf
  12.     Next
  13.  
  14.     ; powiekszanie tablic
  15.     $bo = UBound($zmienne)
  16.     ReDim $zmienne[$bo+1]
  17.     $zmienne[$bo] = $_SO
  18.  
  19.     ReDim $zmienne2[$bo+1]
  20.     $zmienne2[$bo] = $_SO2
  21. EndFunc
  22.  
  23. ; usuwa zmienna
  24. func __DelVar($_SO)
  25.     for $i = 0 to UBound($zmienne) -1
  26.         if $zmienne[$i] = $_SO then $zmienne[$i]=""
  27.     Next
  28. EndFunc
  29.  
  30. ; sprawdza czy zmienna istnieje
  31. func __VarExists($_SO)
  32.     for $i = 0 to UBound($zmienne) -1
  33.         if $zmienne[$i] = $_SO then return true
  34.     Next
  35.     return false
  36. EndFunc
  37.  
  38. ; zwraca nowa nazwe zmiennej
  39. func __VarName($_SO)
  40.     for $i = 0 to UBound($zmienne) -1
  41.         if $zmienne[$i] = $_SO then return $zmienne2[$i]
  42.     Next
  43.     return -1
  44. endfunc
  45.  
  46. ; wstawia string do stringa w miejsce ($iPOS)
  47. func __StringInsert($sSTRING, $iPOS, $sNEW)
  48.     return StringMid($sSTRING,1,$iPOS) & $sNEW & StringMid($sSTRING,$iPOS+1,stringlen($sSTRING)-$iPOS+1)
  49. endfunc
  50.  
  51. ; usuwa z stringa ($iLEN) liter od pozycji ($iPOS)
  52. func __StringCut($sSTRING, $iPOS, $iLEN)
  53.     return StringMid($sSTRING,1,$iPOS) & StringMid($sSTRING,$iPOS+1+$iLEN,stringlen($sSTRING)-$iPOS+1-$iLEN)
  54. endfunc
  55.  
  56. ; usuwa z stringa ($iLEN) liter od pozycji ($iPOS) i wstawia tam string ($sNEW)
  57. func __StringReplace($sSTRING, $iPOS, $iLEN, $sNEW)
  58.     return __StringInsert(__StringCut($sSTRING, $iPOS, $iLEN),$iPOS,$sNEW)
  59. endfunc
  60.  
  61. ; sprawdza czy znak jest inni niz litery+liczby
  62. func __CharCheck($sCHAR)
  63.     return not ((asc($sCHAR) >= asc("a")) and (asc($sCHAR) <= asc("z"))) or _
  64.        ((asc($sCHAR) >= asc("A")) and (asc($sCHAR) <= asc("Z"))) or _
  65.        ((asc($sCHAR) >= asc("0")) and (asc($sCHAR) <= asc("9"))) or _
  66.        (asc($sCHAR) == asc("_"))
  67. endfunc
  68.  
  69. ; generuje losowy string o dlugosci ($iLEN)
  70. func __RandomString($iLEN)
  71.     local $i, $r
  72.     local $s = ""
  73.     for $i = 1 to $iLEN
  74.         $r = random(1,3,1)
  75.         if $r = 1 then $s &= chr(random(asc("a"),asc("z"),1))
  76.         if $r = 2 then $s &= chr(random(asc("A"),asc("Z"),1))
  77.         if $r = 3 then $s &= chr(random(asc("0"),asc("9"),1))
  78.     next
  79.     return $s
  80. endfunc
  81.  
  82. ; parsuje tekst i podmienia nazwy zmiennych
  83. func parse($_s)
  84.  
  85.     local $s = $_s
  86.     local $x = 0
  87.  
  88.     local $bCOMMENT = False
  89.     local $bQUOTE   = False
  90.     local $bDQUOTE  = False
  91.  
  92.     While($x<stringlen($s))
  93.  
  94.         if StringMid($s,$x,1) = ";" then
  95.             $bCOMMENT = True
  96.             $x+=1
  97.             ContinueLoop
  98.         EndIf
  99.  
  100.         if StringMid($s,$x,1) = '"' then
  101.             $bQUOTE = not $bQUOTE
  102.             $x+=1
  103.             ContinueLoop
  104.         EndIf
  105.  
  106.         if StringMid($s,$x,1) = "'" then
  107.             $bDQUOTE = not $bDQUOTE
  108.             $x+=1
  109.             ContinueLoop
  110.         EndIf
  111.  
  112.         if (StringMid($s,$x,1) = chr(10)) or (StringMid($s,$x,1) = chr(13)) then
  113.             $bCOMMENT = false
  114.             $x+=1
  115.             ContinueLoop
  116.         EndIf
  117.  
  118.         if (not $bCOMMENT) and (not $bQUOTE) and (not $bDQUOTE) Then
  119.  
  120.             if StringMid($s,$x,1) = '$' Then
  121.  
  122.                 local $bTEMP = true
  123.                 local $y = 1
  124.                 local $varname = ""
  125.  
  126.                 while ($bTEMP)
  127.  
  128.                     if __CharCheck(stringmid($s,$x+$y,1)) then
  129.  
  130.                         $bTEMP = False
  131.                         ExitLoop
  132.  
  133.                     EndIf
  134.  
  135.                     $varname &= stringmid($s,$x+$y,1)
  136.  
  137.                     $y+=1
  138.  
  139.                 WEnd
  140.  
  141.                 if __VarExists($varname) Then
  142.  
  143.                     $s = __StringReplace($s,$x,stringlen($varname),__VarName($varname))
  144.                     $x += stringlen(__VarName($varname)) - stringlen($varname)
  145.  
  146.                 Else
  147.  
  148.                     __AddVar($varname,__RandomString(random(15,30,1))) ;random
  149.                     $s = __StringReplace($s,$x,stringlen($varname),__VarName($varname))
  150.                     $x += stringlen(__VarName($varname)) - stringlen($varname)
  151.  
  152.                 EndIf
  153.  
  154.             EndIf
  155.  
  156.         EndIf
  157.  
  158.         $x+=1
  159.  
  160.     WEnd
  161.  
  162.     return $s
  163.  
  164. EndFunc
  165.  
  166. __AddVar("CmdLine","CmdLine")
  167. __AddVar("CmdLineRaw","CmdLineRaw")
  168.  
  169. if ($CmdLine[0]>0) Then
  170.  
  171.     local $f = FileOpen($CmdLine[1],0)
  172.     local $s = fileread($f)
  173.     fileclose($f)
  174.  
  175.     if ($s<>'') Then
  176.  
  177.         $s = parse($s)
  178.         $f = FileOpen($CmdLine[1]&'_obf.au3',2)
  179.         FileWrite($f,$s)
  180.         fileclose($f)
  181.  
  182.     endif
  183.  
  184. EndIf
Advertisement
Add Comment
Please, Sign In to add comment