- 1,005
- 511
столкнулся с проблемой при переписи функции с Lua на Python.
результат:
вроде нормально переписал, должно все быть нормально, но возникли проблемы - по моим соображениям из-за строки в utf-8.
пытался через методы из гугла делать строку в кодировке windows1251, но результат вроде не менялся.
сурс хайдера строк тож есть, он и делает эти строки.
декодирует строку в изначальный вид (из string hider)
результат:
кодировка файла в данном случае Windows 1251
результат:
кодировка файла в данном случае Windows 1251
Lua:
function _C(str)
local res = ""
local n = string.byte( string.sub(str, 1, 1) ) + string.byte( string.sub(str, -1, -1) )
local str = string.sub(str, 2, #str - 1)
for i = 1, #str do
res = res .. string.char( str:byte(i) - n )
end
return res
end
print(_C("‹ђ‹…€‰"))
результат:
Python:
def _C(text):
res = ""
n = ord(text[0]) + ord(text[len(text) - 1])
text = text[1:-1]
for i in range(1, len(text)):
res += chr(ord(text[i]) - n)
print(res)
_C("‹ђ‹…€‰")
пытался через методы из гугла делать строку в кодировке windows1251, но результат вроде не менялся.
сурс хайдера строк тож есть, он и делает эти строки.
Python:
import re, os, random
os.system('title string hider by babulya karelli')
decoder = '\nfunction _C(str)\n local res = ""\n local n = string.byte( string.sub(str, 1, 1) ) + string.byte( string.sub(str, -1, -1) )\n local str = string.sub(str, 2, #str - 1)\n for i = 1, #str do\n res = res .. string.char( str:byte(i) - n )\n end\n return res\nend\n'
def main():
text = input(u'\u041f\u0443\u0442\u044c \u043a Lua: ')
STR_C = ''
with open(text, 'r') as (FILE):
for st in FILE:
result = re.findall('\\"(.*?)\\"', st)
for retab in result:
EncryptLine = ''
number = random.randint(1, 25)
number_ = random.randint(1, 25)
for row in retab.encode('cp1251'):
if row + 50 <= 255:
EncryptLine += ''.join('\\x{:02X}'.format(int(row + (number_ + number))))
else:
EncryptLine = retab
break
if EncryptLine != retab:
print('HIDE: ' + retab)
EncryptLine = ''.join('\\x{:02X}'.format(int(number))) + EncryptLine
EncryptLine += ''.join('\\x{:02X}'.format(int(number_)))
st = st.replace('"' + retab + '"', '(_C("' + EncryptLine + '"))', 1)
else:
st = st
else:
STR_C += st
with open('result.hide.luac', 'w') as (FILE):
FILE.write(decoder + STR_C)
os.system('luajit.exe -b "result.hide.luac" "result.hide.luac"')
print('ok')
main()
main()
Последнее редактирование: