DotFix ::: Software protection portal
 *Начало * Ответить * Статистика * Задать вопрос * Поиск * FAQ * *

DotFix Forum / Вопросы программирования и исследования защит / Декриптовать видоизменненый zip-файл
Автор Сообщение
AVE
Участник


Дата: 17 Июн 2008 12:43


Программа на бейсике, работающая со своими видоизменными zip-файлами.
Когда обращаешься к какому-либо файлу, прога у обрабатывает свой zip-файл, и создает у себя в папке нормальный zip-файл.
Декомпилировав нашел функцию DeCrypt, которая обрабатывает файл.
Подскажите как перевести эту функцию на Делфи или Си.

Public Sub Encrypt(vstrOrigZipFilePath, vstrEncryptedZip 
FilePath) '11074240 loc_11074262: var_8 = 11001E50h loc_1107429B: call MSVBVM60.DLL.__vbaStrCopy(edi, 11001210h, arg_
8) loc_110742A3: call MSVBVM60.DLL.__vbaStrCopy loc_110742AD: var_64 = "" loc_110742C2: var_3C = Dir(&H4008) loc_110742D9: neg esi loc_110742DB: sbb esi, esi loc_110742DD: neg esi loc_110742DF: neg esi If (var_3C = 1100B7A8h) <> edi Then loc_110742F3: var_64 = "" loc_110742FD: Kill &H4008 End If loc_1107430D: var_44 = 80020004h loc_11074314: var_4C = 10 loc_1107432B: var_44 = 80020004h loc_11074342: FreeFile(""C) = FreeFile(""C) + 0001h If Err.Number <> 0 Then GoTo loc_11074496 loc_1107435B: call Open #(00000020h, FFFFFFFFh, FreeFile(""C, edi
), "") loc_1107436A: call Open #(00000020h, FFFFFFFFh, FreeFile(""C), ""
) loc_11074385: var_44 = Chr$(00000000h) loc_11074391: var_4C = 8 loc_11074398: var_5C = @String(LOF(FreeFile(""C, edi))) loc_110743A2: call MSVBVM60.DLL.__vbaStrVarMove(var_5C, ""C) loc_110743AD: var_24 = MSVBVM60.DLL.__vbaStrVarMove(var_5C, ""C) loc_110743CF: call Get #(00000000h, var_24, 00000001h, FreeFile("
"C, edi)) loc_110743DD: var_64 = var_24 loc_110743E4: var_6C = 8 loc_11074403: call frmMain.SetPropA("") loc_11074422: call MSVBVM60.DLL.__vbaPut4(00000000h, 0, 00000001h
, FreeFile(""C)) loc_1107442F: Close FreeFile(""C, edi) loc_11074432: Close FreeFile(""C) loc_11074439: GoTo loc_11074458 loc_11074457: Exit Sub loc_11074458: 'Referenced from 11074439 loc_11074476: Exit Sub loc_11074493: Exit Sub loc_11074496: 'Referenced from 1074346 loc_11074496: call MSVBVM60.DLL.__vbaErrorOverflow End Sub Public Sub Decrypt(vstrEncryptedZipFilePath, vstrFinalZipFilePath) '1
10744A0 loc_110744C2: var_8 = 11001E60h loc_110744FB: call MSVBVM60.DLL.__vbaStrCopy(edi, 11001210h, arg_
8) loc_11074503: call MSVBVM60.DLL.__vbaStrCopy loc_1107450D: var_64 = "" loc_11074522: var_3C = Dir(&H4008) loc_11074539: neg esi loc_1107453B: sbb esi, esi loc_1107453D: neg esi loc_1107453F: neg esi If (var_3C = 1100B7A8h) <> edi Then loc_11074553: var_64 = "" loc_1107455D: Kill &H4008 End If loc_1107456D: var_44 = 80020004h loc_11074574: var_4C = 10 loc_1107458B: var_44 = 80020004h loc_110745A2: FreeFile(""C) = FreeFile(""C) + 0001h If Err.Number <> 0 Then GoTo loc_110746F6 loc_110745BB: call Open #(00000020h, FFFFFFFFh, FreeFile(""C, edi
), "") loc_110745CA: call Open #(00000020h, FFFFFFFFh, FreeFile(""C), ""
) loc_110745E5: var_44 = Chr$(00000000h) loc_110745F1: var_4C = 8 loc_110745F8: var_5C = @String(LOF(FreeFile(""C, edi))) loc_11074602: call MSVBVM60.DLL.__vbaStrVarMove(var_5C, ""C) loc_1107460D: var_24 = MSVBVM60.DLL.__vbaStrVarMove(var_5C, ""C) loc_1107462F: call Get #(00000000h, var_24, 00000001h, FreeFile("
"C, edi)) loc_1107463D: var_64 = var_24 loc_11074644: var_6C = 8 loc_11074663: call frmMain.SetPropA("") loc_11074682: call MSVBVM60.DLL.__vbaPut4(00000000h, 0, 00000001h
, FreeFile(""C)) loc_1107468F: Close FreeFile(""C, edi) loc_11074692: Close FreeFile(""C) loc_11074699: GoTo loc_110746B8 loc_110746B7: Exit Sub loc_110746B8: 'Referenced from 11074699 loc_110746D6: Exit Sub loc_110746F3: Exit Sub loc_110746F6: 'Referenced from 10745A6 loc_110746F6: call MSVBVM60.DLL.__vbaErrorOverflow End Sub Private sub Unknown_11074700 loc_11074725: var_8 = 11001E70h loc_11074762: call MSVBVM60.DLL.__vbaNew(11002C88h, edi, esi, ebx
) loc_1107477B: call MSVBVM60.DLL.__vbaStrCopy("", MSVBVM60.DLL.__v
baNew(11002C88h, edi, esi, ebx)) loc_1107478B: frmMain.PropBag.WriteProperty("", %x2, %x3) loc_110747C2: var_70 = &H3180 loc_110747C5: var_78 = &H8002 loc_110747CC: var_58 = @Len("") loc_110747D3: call MSVBVM60.DLL.__vbaVarTstGt(var_78, var_58) If MSVBVM60.DLL.__vbaVarTstGt(var_78, var_58) <> 0 Then loc_110747F0: var_50 = &H3180 loc_11074812: var_48 = Mid$(@CStr(""), 00000001h, 2) loc_1107481E: frmMain.var_48 = Forms loc_11074862: var_58 = @Len("") loc_1107486B: var_40 = @CLng(%x2) loc_1107486E: GoTo loc_1107488F End If loc_1107487D: var_58 = @Len("") loc_1107488F: 'Referenced from 1107486E If 00000001h <= @CLng(%x2) Then loc_110748B1: var_50 = 1 loc_110748C1: var_68 = @Mid$("", 00000001h, 2) loc_110748CB: call MSVBVM60.DLL.__vbaStrVarMove(var_68) loc_110748FF: var_78 = 3 loc_11074904: movsx eax, ax loc_1107490C: var_70 = Asc(MSVBVM60.DLL.__vbaStrVarMove(var_68)) loc_1107491C: frmMain.var_7C = Forms loc_11074927: var_58 = @Chr("") loc_11074931: call MSVBVM60.DLL.__vbaStrVarMove(var_58) loc_1107493E: var_44 = MSVBVM60.DLL.__vbaStrVarMove(var_58) loc_1107494A: frmMain.var_44 = Forms loc_1107497F: 00000001h = 00000001h + 1 If Err.Number <> 0 Then GoTo loc_11074A36 loc_11074987: var_3C = 1 loc_1107498A: GoTo loc_1107489D End If loc_11074999: call frmMain.SetPropA("") loc_110749C1: var_34 = 0 loc_110749C8: GoTo loc_110749FD If byte ptr var_4 <> 0 Then End If loc_110749FC: Exit Sub loc_110749FD: 'Referenced from 110749C8 loc_11074A18: Exit Sub loc_11074A33: Exit Sub loc_11074A36: 'Referenced from 1074981 loc_11074A36: call MSVBVM60.DLL.__vbaErrorOverflow End Sub Private sub Unknown_11074A40 loc_11074A62: var_4 = 11001E80h loc_11074A7A: loc_11074A8C: var_3C = &HFF loc_11074A93: var_44 = 2 loc_11074A9A: call Xor("", var_44, "", edi, esi, ebx) loc_11074AA1: Xor("", var_44, "", edi, esi, ebx) = @CLng(%x2) loc_11074AA7: var_24 = Xor("", var_44, "", edi, esi, ebx) loc_11074AAF: GoTo loc_11074ABB loc_11074ABA: Exit Sub loc_11074ABB: 'Referenced from 11074AAF loc_11074AC4: Exit Sub End Sub



вот еще ссылка
http://cracklab.ru/f/index.php?action=vthread&forum=1&topic=12095&page =-1#15

Admin
Администратор


Дата: 17 Июн 2008 14:20


Quoting: AVE

Подскажите как перевести эту функцию на Делфи или Си.


Вручную конечно Или это сделать за тебя нам?

AVE
Участник


Дата: 17 Июн 2008 19:04


Ну было бы очень хорошо, если бы подсказали как это сделать.

AVE
Участник


Дата: 18 Июн 2008 21:22


Ок. Посоветуйте тогда хороший справочник по функция безика

Admin
Администратор


Дата: 26 Июн 2008 18:18


Quoting: AVE

Ну было бы очень хорошо, если бы подсказали как это сделать.


Читай статьи. Исследуй VB. На WASM полно статей про натив код.

Quoting: AVE

Ок. Посоветуйте тогда хороший справочник по функция безика


Зайди в раздел статей по Visual Basic на данном сайте.

AVE
Участник


Дата: 28 Июн 2008 00:44


GPcH Можно выложить статьи VB одним архивом?


trouble
Участник


Дата: 28 Июн 2008 16:25


[quote=AVE]Подскажите как перевести эту функцию на Делфи или Си.[/quote]
Есть софт для таких целей. У меня есть программа VBto Converter.

AVE
Участник


Дата: 28 Июн 2008 18:25


Помоему не одна из подобных програм не работает

trouble
Участник


Дата: 28 Июн 2008 23:01


Какие юзал? Этой я не пользовался пока, но успел поламать - платная была. Вот не знаю как на ебауте с надпись поменять

Admin
Администратор


Дата: 30 Июн 2008 01:07


Quoting: AVE

Можно выложить статьи VB одним архивом?


У меня они у самого в виде модулей к движку. потому только выкачивать.

AVE
Участник


Дата: 30 Июн 2008 12:57


очень жаль

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Код 
... Отменить *Что это?


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль