Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez-, testrev1337 (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› Взлом программы с RSA шифрованием написанной на Delphi с использованием Turbo Power LockBox
. 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 28 октября 2009 07:12 · Поправил: fl4r3
· Личное сообщение · #1

Добрый день. Вчера мне потребовалось взломать программу для личного пользования и взявшись за IDA Pro я начал исследование. После поиска по GetWindowTextA и кросс референсам были найдены процедуры выводящие итог регистрации (удачная\неудачная). Потрейсив код немного выше были найдены и сами процедуры. После этого я открыл Hiew, нашел данные строки и попробовал изменить один условный переход. Но при запуске программы я получал ошибку и вываливался в отладчик (Microsoft Visual Studio 2008), который напрочь зависал при передаче ему управления. Ага, опять продукт микрософта подумал я, и решил попробовать что нибудь другое. Перешел в IDA Pro и там попробовал дебажить. IDA тоже не справился. Я начал подумывать что может заменил неправильно переход и каким нибудь образом стек становился несбалансированным и из-за этого программа вылетала. Взял исходный exe опять и заменил в конце файла один байт в строке с копирайтами (с 2003 года заменил на 2004). Запустил. Не работает. Тут я начал подумывать о том что файл упакован. Но при ручном осмотре и автоматическом различными анпакерами это не подтвердилось. Значит дело в другом. С помощью PEiD нашел список используемых криптографических функций. Среди них пара бейз64, crc32, blowfish, LockBox и список простых чисел. Список простых чисел наверняка используется для вычисления RSA ключа. Переходя по разным адресам где располагаются функции LockBox (например RsaEncryptFile) я начал исследование самой защиты. Я знал что можно будет написать брутфорсер зная числа p, q, e. Но в данном конкретном случае ничего не вышло. Ребята, посмотрите пожалуйста данный exe - достаточно интересная защита.
Ссылка на exe:
ifolder: http://ifolder.ru/14707511 (версия 1.5.0 - не самая последняя)

P.S. Мне не нужна конкретная реализация, подскажите просто в каком направлении копать.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 28 октября 2009 10:20
· Личное сообщение · #2

А как софтик называется? Мож уже кто раньше смотрел.



Ранг: 12.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 28 октября 2009 10:22
· Личное сообщение · #3

Пиши лоадырь,зачем тратить время зря на криптоговна


.486
.model flat, stdcall
option casemap :none

include windows.inc
include masm32.inc
include user32.inc
include kernel32.inc
include shell32.inc

includelib masm32.lib
includelib user32.lib
includelib kernel32.lib
includelib shell32.lib


.data

Exe db "crome.exe",0
App db "crome.exe",0
Error1 db "Could not find crome.exe",0


.data?
Sinfo STARTUPINFO <>
Pinfo PROCESS_INFORMATION <>
WByte DWORD ? ; байт для чтения
RByte DWORD ? байт для записи
Adr DWORD ? ; адрес для патча
n DWORD ? ; кол-во байтов


.code
start:
invoke CreateProcess,addr Exe,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,addr Sinfo,addr Pinfo
CMP EAX,0
JNZ PATCH
INVOKE MessageBox,NULL,addr Error1,addr App,MB_ICONERROR
INVOKE ExitProcess,0
PATCH:
MOV Adr, 005422A5h ;патч на Professional version, остальное сам копай
MOV WByte,31h ; байт для патча
CALL PATCHER
invoke CloseHandle,Pinfo.hThread
INVOKE ExitProcess,0
;---------------------------------
PATCHER PROC
INVOKE ReadProcessMemory,Pinfo.hProcess,Adr,addr RByte,1,n
INVOKE WriteProcessMemory,Pinfo.hProcess,Adr,addr WByte,1,n
;---------------------------------
RET
PATCHER ENDP
end start



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 28 октября 2009 12:03
· Личное сообщение · #4

Lampik пишет:
Пиши лоадырь,зачем тратить время зря на криптоговна

И чё твой лоадер делает? Тупо в абауте надпись Professional version добавляет и всё, на добавление фукционала это никак не сказывается.
тогда уж лучше
004EB242 03:00
004EB18B 74:EB



Ранг: 12.8 (новичок)
Активность: 0.020
Статус: Участник

Создано: 28 октября 2009 12:27
· Личное сообщение · #5

Vovan666 Я только показал пример,чтоб fl4r3 понял как надо делать




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 28 октября 2009 12:59
· Личное сообщение · #6

fl4r3 пишет:
С помощью PEiD нашел список используемых криптографических функций. Среди них пара бейз64, crc32, blowfish, LockBox и список простых чисел. Список простых чисел наверняка используется для вычисления RSA ключа.

Вовсе не обязательно. Если, например, KryptoAnalyzer определяет число как большое, то это вовсе еще не значит, что оно используется для алгоритма шифрования RSA, и что он в программе вообще присутствует. Может быть это какие-то заготовки (текстовые константы) для предварительной обработки регданных, а может используются для хеширования или вообще не относятся к алгоритму генерации ключа. В первую очередь, надо проверить являются ли числа простыми и юзается ли скажем библиотека Miracle или какая-то другая для работы с большими числами. Потом пытаться локализовать алгоритм и определить используемые функции по работе с большими числами.
Если очень хочешь сделать именно кейген, то в конечном итоге все зависит от реализации алгоритма. Если алгоритм построен таким образом, что на основании введенного имени генерируется ключ-эталон, а затем он сравнивается с ключом введенным, тогда дело обстоит значительно проще. Пример таких программ с алгоритмом RSA мне приходят в голову программ от www.aone-soft.com/ и от www.ivideosoft.com/ И там, и там юзается RSA, но введенный ключ сравнивается с предварительно сгенерированным. Для A-one RSA-384, а для Absolute software -> RSA-100. То есть можно за пару минут вытащить ключ без всяких напрягов, но с кейгеном несколько сложнее дело будет обстоять.

-----
Программист SkyNet





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 28 октября 2009 13:21
· Личное сообщение · #7

зачем выкладывать на фтп и айфолдырь, если есть родной установщик?

Crome 1.5.3 (2.2 MB)

Пароль к установщику: 'pgmfi.org'

-----
EnJoy!




Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 28 октября 2009 14:58 · Поправил: fl4r3
· Личное сообщение · #8

Jupiter Дело в размере, зачем вам качать лишнее. У меня версия 1.5.0, не знал что вышла новая. Теперь буду мучать новую. Алгоритм защиты не менялся с версии 1.1.11h.

FrenFolio Миракл не используется. Подключаемых библиотек нет, кроме системных. Кейген писать не надо, есть строка в программе SerialID = C0408876D-046866-004754-06553524-061659 (для каждого компьютера своя) и нужно ввести Reg String. Имя пользователя и название компании не заполняется. Дело пока даже не в самом алгоритме шифрования этого ключа, а в невозможности изменения даже одного бита в exe.

Ara Софт называется Crome - утилита для тюнинга ODB1 блоков управления двигателем Honda.

Задача для меня на сегодня:
1) разобратся почему только OllyDbg смог отлаживать программу (антиотладочные приемы)
2) почему программа при старте сразу выбрасывает ексепшн (в деббаге он отлавливается и спрашивает передавать ли программе, если не передать программа не стартует)
3) как снять защиту на изменение исходного файла

P.S. При удачной регистрации введенный нами Reg String сохраняется в папке с Crome под названием register без расширения в оригинальном введенном нами виде.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 28 октября 2009 15:18 · Поправил: ToBad
· Личное сообщение · #9

fl4r3 пишет:
Взял исходный exe опять и заменил в конце файла один байт в строке с копирайтами (с 2003 года заменил на 2004). Запустил. Не работает.


Так проверка целостности файла значит. Lampik лоадер сделал, память на целостность не проверяется значит, ставь бряк на CreateFile и ReadFile и смотри где подсчёт, либо иди путём лоадера...
Думаю, если изначально планировал переход подправить, то следует этим путём идти, а лезть в дебри крипто врядле есть смысл. Вот кстати дока на русском если нужна. www.turboborisov.com/Statji/Elektrika/CROME--Rukovodstvo-dlja-nachinajushikh.html



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 28 октября 2009 16:00
· Личное сообщение · #10

Там банальная проверка CRC32
004F38CA занопить и будет запускаться



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 28 октября 2009 16:28 · Поправил: fl4r3
· Личное сообщение · #11

Vovan666 Оу. Упустил. Спасибо большое. И лоадер теперь не нужен. Теперь попробую поправить переходы чтобы она считала себя полнофункциональной Pro версией, а не урезанной обычной. Связыватся с серийниками и всем остальным нет смысла я думаю, поэтому надо отлавливать ReadFile при старте программы, когда она пытается найти файл register с исходным ключом.



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 29 октября 2009 06:24 · Поправил: fl4r3
· Личное сообщение · #12

Так. Новая проблема. Не могу дойти даже до алгоритма генерации ключа из введенной Reg String, потому что постоянно в отладчике вижу ексепшн который хендлится самой программой Invalid Block Size. Такую же самую ошибку я видел в Ninja CrackMe от барта, но там они ломали полностью криптосистему RSA с брутфорсом и разложением на простые множители. Знать бы хотя бы формат вводимой Reg String. Сейчас буду разбиратся дальше...



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 29 октября 2009 06:44 · Поправил: fl4r3
· Личное сообщение · #13

Формат выяснил. Это строка вида aTZP4RIMFAzjUPwo1wUepq6nw++Fo935HdLRi2zQ2mU. При вводе, часть кода расшифровывается с ее помощью. И у меня эта часть кода естественно превращается в мусор. Стоит хендл в самой программе на ексепшн, если ошибка в выполнении инструкции = неверный регстринг. В файле crome.ini лежит странная строка:

[Most Recently Used]
ID=sfiWab5Dzyu1/KdciXL6Gw==

Очень похоже если убрать последние два знака равенства на First или Second Prime. Впрочем это не так важно, лучше знать Modulus (N), чем один из праймов. Ведь зная N всегда можно вычислить P и Q за достаточное время. Знание одного из праймов просто ускоряет перебор.

Если кто-то нашел Modulus (N) в исходнике файла, сообщите его пожалуйста...



Ранг: 128.8 (ветеран), 21thx
Активность: 0.060.05
Статус: Участник

Создано: 29 октября 2009 07:32 · Поправил: Hugo Chaves
· Личное сообщение · #14

fl4r3

А нельзя поискать этот компонент от Turbo Power где-нибудь ?
Насколько я знаю компания сия прекратила свое существование и вроде бы выложила все свои работы
в паблик.
Изучив исходники можно найти характерные места защиты и вперёд ...

Ну так и есть . Выложено всё на sourceforge:
h**p://sourceforge.net/projects/tplockbox/files/tplockbox/2.07/tplockb ox_2_07.zip/download



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 29 октября 2009 17:19
· Личное сообщение · #15

Hugo Chaves Да, я видел этот компонент уже. Там просто реализация разных алгоритмов шифрования - ничего нового. Просто набор библиотек и компонентов для программистов которым лень. Это никак не поможет, обычное RSA шифрование оно и есть обычное RSA шифрование



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 29 октября 2009 18:24 · Поправил: fl4r3
· Личное сообщение · #16

Update: Что то не дает мне покоя 64 битные праймы(видимо они все таки не 64 битные)... Если с помощью них вычислить модулус N, то при попытке зашифровать наш месседж (серийный номер = C0408876D-046866-004754-06553524-061659) мы получим ошибку что сообщение для шифрования больше N. Если этот номер шифруется по блокам (допустим - это разделители блока) то тем более странно, ведь первый блок больше второго третьего и пятого, а первый и четвертый разного размера)...

Update2: не правильно я все понял видимо, да и вообще если честно уже запутался...

Вот пример похожей защиты если это поможет: eoda.by.ru/Data/Solutions/xt_ninja/ninja_sol.htm




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 30 октября 2009 00:23 · Поправил: zeppe1in
· Личное сообщение · #17

fl4r3
ключ в base64 должен быть. по этому и эксепшен возникает когда не может раскодировать.
и это sfiWab5Dzyu1/KdciXL6Gw== тоже base64

-----
zzz




Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 30 октября 2009 06:33 · Поправил: fl4r3
· Личное сообщение · #18

zeppe1in
Я писал немного выше что если ввести Reg String вида aTZP4RIMFAzjUPwo1wUepq6nw++Fo935HdLRi2zQ2mU то процедура расшифровки начинается, но из кода который расшифровывается с ее помощью получается мусор. Что это Base64 я знаю Просто праймы то скорее всего или модулус хранятся в файле в виде HEX, а потом уже шифруются в бейз64 для нужд RSA. Надо это все проверить, но код достаточно запутан, хотя вроде и получилось локализовать защиту. Сегодня попозже, после обеда, скину сюда конкретные процедуры, подумаем вместе



Ранг: 85.5 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 октября 2009 11:48 · Поправил: DMD
· Личное сообщение · #19

fl4r3
в TP LockBox 2.07 перед непосредственным использованием ключи (экспоненты и модули) представлены в виде неких контекстов. (и как обычно для Bignum'ом все в перевернутом виде)
как пример:
экспанента:
00402180 34 31 44 37 43 42 33 37 41 32 31 46 37 37 39 35 41D7CB37A21F7795
00402190 43 37 31 35 32 30 34 41 36 35 31 43 39 34 43 44 C715204A651C94CD
004021A0 34 31 31 46 46 38 33 36 34 31 33 45 37 31 36 31 411FF836413E7161
004021B0 33 42 41 39 44 46 41 46 30 37 34 39 36 33 35 30 3BA9DFAF07496350

контекст:
00B10A90 6C B7 1A 00 01 00 00 00 00 00 00 00 A8 0A B1 00
00B10AA0 E4 0A B1 00 1A 00 00 00 58 78 1A 00 01 00 00 00
00B10AB0 00 20 00 00 00 C0 0A B1 00 00 00 00 26 00 00 00
00B10AC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00B10AD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00B10AE0 1A 00 00 00 58 78 1A 00 01 20 00 00 00 20 00 00
00B10AF0 00 FC 0A B1 00 00 00 00 26 00 00 00 41 D7 CB 37
00B10B00 A2 1F 77 95 C7 15 20 4A 65 1C 94 CD 41 1F F8 36
00B10B10 41 3E 71 61 3B A9 DF AF 07 49 63 50 00 00 00 00
00B10B20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
те. сначала идет создание контекстов, их загрузка: RSASetPrivateKey или RSASetPublicKey (в принципе есть еще пара функций для загрузки котекстов)
а уж потом само RSA
создание контекстов ключей ловится на AllocMem (если не путаю.. давно это было,,,)

поскольку RSA восстанавливает код, использоваться функции:
DecryptRSAEx или RSADecryptString
(в зависимости от фантазии девелоперов... )
можно попробовать по кодам начала этих функций поискать совпадение в таргете ну и надеяться получить экспоненту и модуль.
потом все будет определяться размерностью...

ps/
кстати, такой вот стринг: ASCII "OutBlock size too small" есть в начале TPLbRSA.DecryptRSAEx TPLbRSA.EncryptRSAEx (остальные функции RSA не проверял.. )



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 30 октября 2009 14:33
· Личное сообщение · #20

DMD
Спасибо за подробное разъяснение.



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 30 октября 2009 14:50
· Личное сообщение · #21

zeppe1in
Бейз то бейз, но зачем он там, вот загадка При удачной регистрации создается отдельный файл register. А зачем эта строка в конфиге и где она используется...



Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 30 октября 2009 15:02 · Поправил: fl4r3
· Личное сообщение · #22

Проверка на правильность введенной Reg String (насколько я понимаю)
Code:
  1. sub_4E95B4 proc near
  2.  
  3. var_C= dword ptr -0Ch
  4. var_8= dword ptr -8
  5. var_4= dword ptr -4
  6.  
  7. push    ebp
  8. mov     ebp, esp
  9. add     esp, 0FFFFFFF4h
  10. push    ebx
  11. push    esi
  12. push    edi
  13. mov     [ebp+var_8], ecx
  14. mov     [ebp+var_4], edx
  15. mov     ebx, eax
  16. xor     eax, eax
  17. mov     al, [ebx+4]
  18. movzx   esi, ds:word_592B4C[eax*2]
  19. movzx   edi, ds:word_592B58[eax*2]
  20. mov     ecx, esi
  21. mov     dl, 1
  22. mov     eax, off_4E3E40
  23. call    sub_4E6560
  24. mov     [ebp+var_C], eax
  25. xor     eax, eax
  26. push    ebp
  27. push    offset loc_4E966B
  28. push    dword ptr fs:[eax]
  29. mov     fs:[eax], esp
  30. mov     edx, [ebp+var_4]
  31. mov     ecx, esi
  32. mov     eax, [ebp+var_C]
  33. call    sub_4E6738
  34. push    0
  35. mov     cl, 2
  36. mov     edx, ebx
  37. mov     eax, [ebp+var_C]
  38. call    sub_4E915C
  39. mov     eax, [ebp+var_C]
  40. call    sub_4E6888
  41. cmp     eax, edi
  42. jle     short loc_4E9636
  43.  
  44. Здесь получаем ошибку из-за неверного формата:
  45. mov     ecx, offset aOutblockSize_0 ; "OutBlock size too small"
  46. mov     dl, 1
  47. mov     eax, off_408C60
  48. call    sub_40DC98
  49. call    sub_404BE4 ; интересная функция, скопирую ниже.
  50.  
  51. Здесь ветка для удачного перехода:
  52. loc_4E9636:
  53. mov     eax, [ebp+var_C]
  54. call    sub_4E6888
  55. mov     ecx, eax
  56. mov     edx, [ebp+var_8]
  57. mov     eax, [ebp+var_C]
  58. call    sub_4E67A4
  59. xor     eax, eax
  60. pop     edx
  61. pop     ecx
  62. pop     ecx
  63. mov     fs:[eax], edx
  64. push    offset loc_4E9672
  65.  
  66. -------------
  67.  
  68. sub_404BE4 proc near
  69. or      eax, eax
  70. jnz     short loc_404BF2
  71.  
  72. mov     eax, 0D8h
  73. call    sub_40519C
  74.  
  75. loc_404BF2:
  76. pop     edx
  77. push    esp
  78. push    ebp
  79. push    edi
  80. push    esi
  81. push    ebx
  82. push    eax
  83. push    edx
  84. push    esp
  85. push    7
  86. push    1
  87. push    0EEDFADEh ; номер ексепшена который мы отлавливаем с помощью отладчика, когда происходит неудачное шифрование.
  88. push    edx
  89. jmp     ds:dword_598014
  90. sub_404BE4 endp





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 30 октября 2009 15:23
· Личное сообщение · #23

сорцы же есть, нужно сигнатуры сделать, тогда всё станет на много проще.
никто не подскажет как сделать сиги?

-----
zzz




Ранг: 6.2 (гость), 2thx
Активность: 0.010
Статус: Участник

Создано: 30 октября 2009 15:37
· Личное сообщение · #24

zeppe1in
К сожалению без понятия...



Ранг: 85.5 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 октября 2009 16:11 · Поправил: DMD
· Личное сообщение · #25

zeppe1in
сорцы же есть, нужно сигнатуры сделать, тогда всё станет на много проще.
никто не подскажет как сделать сиги?

именно потому что в сорцах это сделать невозможно.

fl4r3
Проверка на правильность введенной Reg String (насколько я понимаю)
нет, не правильно.
(формат fasm)
invoke DecryptRSAEx, [addr_PublicKey], buff_Encrypt, buff_Decrypt

invoke RSAEncryptString, _RSA_TLbRSA, _Message, _out_A, 80h
invoke RSADecryptString, _RSA_TLbRSA, _out_A, _out_B, 80h

и судя по тому что имеем всего три параметра - у нас DecryptRSAEx => знаем адрес контекста PublicKey.
и => знаем Public экспоненту и модуль.

так что внимательно смотри указатели на что передаются...




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 30 октября 2009 16:16
· Личное сообщение · #26

DMD ну я могу скомпилить на дельфе 7, тока чо дальше хз.

-----
zzz




Ранг: 85.5 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 октября 2009 16:19 · Поправил: DMD
· Личное сообщение · #27

хотя... вот что странно:
это начало DecryptRSAEx (точно.. с гарантией )

Code:
  1. 001ABF64 >  55                        PUSH    EBP
  2. 001ABF65    8BEC                      MOV     EBP, ESP
  3. 001ABF67    51                        PUSH    ECX
  4. 001ABF68    53                        PUSH    EBX
  5. 001ABF69    56                        PUSH    ESI
  6. 001ABF6A    57                        PUSH    EDI
  7. 001ABF6B    8B5D 08                   MOV     EBX, DWORD PTR [EBP+8]
  8. 001ABF6E    33C0                      XOR     EAX, EAX
  9. 001ABF70    8A43 04                   MOV     AL, BYTE PTR [EBX+4]
  10. 001ABF73    0FB73445 34051B00         MOVZX   ESI, WORD PTR [EAX*2+1B0534]
  11. 001ABF7B    0FB73C45 40051B00         MOVZX   EDI, WORD PTR [EAX*2+1B0540]
  12. 001ABF83    8BCE                      MOV     ECX, ESI
  13. 001ABF85    B2 01                     MOV     DL, 1
  14. 001ABF87    A1 0C781A00               MOV     EAX, DWORD PTR [1A780C]
  15. 001ABF8C    E8 9BDFFFFF               CALL    001A9F2C
  16. 001ABF91    8945 FC                   MOV     DWORD PTR [EBP-4], EAX
  17. 001ABF94    33C0                      XOR     EAX, EAX
  18. 001ABF96    55                        PUSH    EBP
  19. 001ABF97    68 14C01A00               PUSH    001AC014
  20. 001ABF9C    64:FF30                   PUSH    DWORD PTR FS:[EAX]
  21. 001ABF9F    64:8920                   MOV     DWORD PTR FS:[EAX], ESP
  22. 001ABFA2    8B55 0C                   MOV     EDX, DWORD PTR [EBP+C]
  23. 001ABFA5    8BCE                      MOV     ECX, ESI
  24. 001ABFA7    8B45 FC                   MOV     EAX, DWORD PTR [EBP-4]
  25. 001ABFAA    E8 55E1FFFF               CALL    001AA104
  26. 001ABFAF    6A 00                     PUSH    0
  27. 001ABFB1    B1 02                     MOV     CL, 2
  28. 001ABFB3    8BD3                      MOV     EDX, EBX
  29. 001ABFB5    8B45 FC                   MOV     EAX, DWORD PTR [EBP-4]
  30. 001ABFB8    E8 43FBFFFF               CALL    001ABB00
  31. 001ABFBD    8B45 FC                   MOV     EAX, DWORD PTR [EBP-4]
  32. 001ABFC0    E8 8FE2FFFF               CALL    001AA254
  33. 001ABFC5    3BC7                      CMP     EAX, EDI
  34. 001ABFC7    7E 16                     JLE     SHORT 001ABFDF
  35. 001ABFC9    B9 30C01A00               MOV     ECX, 001AC030                             ; ASCII "OutBlock size too small"
  36. 001ABFCE    B2 01                     MOV     DL, 1


но это не совсем совпадает с приведенным ТС кодом из ИДЫ...
но если предположить, что код ТС все же DecryptRSAEx.. то проверив передаваемые аргументы можно многое для себя проянить



Ранг: 85.5 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 октября 2009 16:30
· Личное сообщение · #28

zeppe1in
а смысл?
нужно точно "угадать" чем работаю аффторы... иначе сигны просто не сработают..
ps/
если не путаю, на wasm была короткая статься по изготовлению сигн для иды...
да и на сайте самой иды все вполне внятно описано

если уж все так по-взрослому - я могу дать коды начала основных функций..
а там сигнатурный поиск по длинным hex-стрингам должен помочь




Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 30 октября 2009 16:36
· Личное сообщение · #29

DMD
чо гадать то, Borland Delphi 6.0 - 7.0 )
кстати тот код что написал fl4r3, это DecryptRSAEx (точно.. с гарантией )

-----
zzz




Ранг: 85.5 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 30 октября 2009 16:41 · Поправил: DMD
· Личное сообщение · #30

-- delete --


. 1 . 2 . 3 . >>
 eXeL@B —› Крэки, обсуждения —› Взлом программы с RSA шифрованием написанной на Delphi с использованием Turbo Power LockBox
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати