Что нового

UniCrypt - библиотека для кодирования текста

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Написал dll для перевода текста в не читабельный вид, если есть желание прошу протестировать и обсудить библиотеку.

P.S. Не рассчитана на шифрование файлов или массивных строк, так как на выходе получается строка в 2 раза больше исходной, как бинарник, отсюда и название.

Пример:

Код:
Global $hCryptDll = DllOpen(@ScriptDir & '\BinCrypt.dll')

$aEncrypt = BinEncrypt('Пример кодирования текста в нечетабельный вид и обратно.')
$aDecript = BinDecrypt($aEncrypt)
;FileWrite(@ScriptDir & '\BinCrypt.txt', $aEncrypt)
MsgBox(32, 'BinEncrypt', $aEncrypt)
MsgBox(32, 'BinDecrypt', $aDecript)

#cs
$hFile = FileOpen(@ScriptDir & '\BinCrypt.txt')
$hRead = FileRead($hFile)
MsgBox(32, 'Read File', BinDecrypt($hRead))
#ce

Func BinEncrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'BinEncrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc	

Func BinDecrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'BinDecrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: BinCrypt - библиотека для кодирования текста

Переделал библиотеку, чтоб данные можно было копировать

Код:
Global $hCryptDll = DllOpen(@ScriptDir & '\BinCrypt.dll')

$aEncrypt = BinEncrypt('BinCrypt - библиотека для кодирования текста.')
$aDecript = BinDecrypt($aEncrypt)
MsgBox(32, 'BinEncrypt', $aEncrypt)
MsgBox(32, 'BinDecrypt', $aDecript)

Func BinEncrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'BinEncrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc	

Func BinDecrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'BinDecrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: BinCrypt - библиотека для кодирования текста

Переделал библиотеку, при криптовании одной и той же строчки несколько раз, получаем такие ключи:

Код:
VЪpћљјЉјБєПњњёwЩbНмћE§n›ќћRҐz¤й›ИћQҐА§zЦdО9ЁМџzЦpџД№РљћіR§жљ7Ґђ™мћ‘ћsШEЫuШЛ8r9ы3›7ІгQ0ъГ™и

SЮsљ›ѕ—№Е¬ФџљјvХdМаќE¶nќњњR«qЈгџК›O°Ж·yЩjЛ4ЅЗљsЧxќА«Рќ›ґS¬зњ1ЇЊћйњ“™xЧCЯxШЗ2r4щ2џ4­лQ7нДћи

TЭn›њЅ’єГ»Фњ›ґyЧlИаќE©vћќњNҐyЁи›МќXЄВ¬qХjК0§К›qЧtџДґСљ›іT¬з™2ЁЊњб™’њqШJЮnЦК9t1у0™1¶аN0уЕћз

VЮnџћЁЉ»ЕІУњ›јpЦlМмџDЄtњџ›Uѕt№лќЛљN°ЖёsЦhО2¦Й™vШwљЕ¬С›ќµNѕгџ2№–љбџ†ћxШBЯqХЗ4x0э3џ0µйZ2яДњж

OЭtџџ®•®ЕҐПњџЁpЩlНжџGЎp››ћPїt·ињЙќXґА±tЦbЙ7·ОљvХnљАґУќ™јO·иљ6¶†ће›Љ›rШMЭzЦМ1z8т0њ0ёвN0пЕћв

SЮyћ™№ЉјЕ¤Рћћ¬xЧcЗзњKїxњљњV«n·ж›ИљSёБ®uЩjМ9ЈЙљqЩp™ДЎРљљїT±г™7ІЉћмџ—ќzШIЮnЦН8o3э6њ1¦кU5цВћж

Если их декриптовать, то мы получим такую строчку - BinCrypt - библиотека для кодирования текста., то есть при каждом новом криптовании, ключь меняется, как и handle у окна.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: BinCrypt - библиотека для кодирования текста

все, конечно, хорошо. но я не понял немного смысла вот этой фразы :smile:
Viktor1703 [?]
на выходе получается строка в 2 раза больше исходной, как бинарник, отсюда и название
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Re: BinCrypt - библиотека для кодирования текста

Kaster, просто криптование происходит бинарного кода текста а не самого текста, но это уже не важно.

Переделал алгоритм, и переназвал библиотеку, теперь ключи на выходе выглядят так:

Код:
SкhzЁЖoДЙВЫЁЁДhгbХцёJГeЁёySБiВуЁЧxQВЙЖgвbЦ4ВСёkвfёНГЩyzАOБцЁ3ЕsётЁmёhаKмiеС1i7ы6ё2БуQ7щЙЁх

PоiwёАrЕЙАЮЁёВjаZФфёNЕguЁЁTБjБрЁУёUЖИЗiдaХ3БУxiжeyКВЪyЁАVЕтw5ДpЁуzszfеLнgжЧ2i2щ3Ё5ВхP7ыЙёф

TкfyёВtГЛДЫЁvЗhаdУтЁLГjЁЁёOЗjЕсёУЁRЖЙДhгZХ3БЦzkбjЁИГШЁwЖTЖфx7АouтЁqёlжGиiеЦ6g0э7ё7ЖуP5юМvч

VпjwЁГrЕКГШЁyДeгbУрЁNГluyxOАjЕфЁТЁQБПАjдbУ7БХёlгlvЛАЯzЁЖSАуё1ВmwцЁmЁfдKпiаУ1k0щ0ё2ГуS6ьПёх

QйfЁuАpЕПВЬzёЕeгZТфЁNГhёёЁTЗlГцёУёQГИЖkвdФ3ЗФvkгgxНДЩЁёЕQЕцЁ2АpёсёqЁeжNнfеР3j5ъ1ё4ЖхU1ьНzф

PиlЁЁЖmАПГЫwЁВgзdФфёGГguёёVЖjЖцwФwTЕМГhаaХ1АХёkдlёМВЯuЁДUАцx5ЕtёчЁsЁfвHоiжХ2l1ш1Ё3ЗхS1ъКЁр

Каждый ключ получается уникальным, а если декриптовать выше представленные ключи то получем одну и туже строку (значение)

Пример:
Код:
Global $hCryptDll = DllOpen(@ScriptDir & '\UniCrypt.dll')

$aEncrypt = UniEncrypt('UniCrypt - библиотека для кодирования текста.')
$aDecript = UniDecrypt($aEncrypt)
MsgBox(32, 'UniEncrypt', $aEncrypt)
MsgBox(32, 'UniDecrypt', $aDecript)

Func UniEncrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'UniEncrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc	

Func UniDecrypt($aString)
	Local $aRet = DllCall($hCryptDll, 'str', 'UniDecrypt', 'str', $aString)
	If ((@error) Or (Not $aRet[0])) Then
		Return SetError(@error, @extended, 0)
	EndIf	
	Return $aRet[0]
EndFunc


Думаю что это окончательный вариант библиотеки. Сделаю привязку к программе при криптовании чтобы даже если используют библиотеку чтоб разкриптовать Ваш ключь то выдовало пустую строку или 0, но только если библиотека будет актуальна.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Не сдержался и добавил шифрование по ключу :smile:
 

Microteam

Осваивающий
Сообщения
74
Репутация
34
no bad, no bad) Отличная бибиотека) вот тока алгоритм какой если не секрет?))
 
Автор
V

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Алгоритм самодельный, я таких не встречал, хотя может и есть что - то похожее, буду держать алгоритм и исходник в секрете, чтоб потом не могли декриптовать Ваши ключи :smile:
 

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Хм, а можно реализовать данным методом шифрование exe файла?
 

palub

Новичок
Сообщения
32
Репутация
3
Не вижу смысла в таковом шифровании, смысл шифровать если autoit легко поддается декомпиляции? Развернут скрипт да посмотрят код, как и что ты там шифруешь .
Ну если только протектором выходной EXE автоита накрывать, ито не факт что исходник не достанут.
Так что как по мне так это просто лишний доп. файл к остновному )
Предпочитаю StringEncrypt :smile:
 

xDESTROYx

Новичок
Сообщения
18
Репутация
0
Это как? можно подробней? не уловил что то...
 
Верх