| Посл.ответ | Сообщение | 
| 
 Ранг: 6.2 (гость) Активность: 0=0
 Статус: Участник
 
 | Создано: 12 декабря 2007 14:28 · Личное сообщение ·  #1
 
Я прикладной программист, хотя душа всегда тяготела к системным вещам. Давно мечтал научиться анализировать софт. Несколько лет назад перед мной встал SoftIce как самый крутой отладчик. Я решил его изучать, но нормальной инфы найти не удалось, после чего я это дело забросил. Недавно я наткнулся на цикл интересных статей www.wasm.ru/series.php?sid=17 прочитал их, разобрался с примерами и OllyDebug стал моим отладчиком на веке. Давно было желание проанализировать программу Back2Life v2.1, и вот настал день, когда я захотел сделать это с помощью OllyDebug, начал выполнять по той же методике как это было в примерах www.wasm.ru/series.php?sid=17, но к сожалению ничего неполучается, поэтому я решил обратиться к ВАМ профессионалам, может кто-нибудь возмется со мной вместе пошагово разобраться в ее скрытии. Для ВАС это же пустяковое дело, а мне хочется научится.
 P.S. Помагите пожалуйста. А то спать начами не смогу.  0350_12.12.2007_CRACKLAB.rU.tgz  - Back2Lifev2.1.rar
  | Сообщение посчитали полезным: | 
|  | 
| 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0
 Статус: Участник
 
 | Создано: 13 декабря 2007 16:35 · Личное сообщение ·  #2
 
Весело   . Гляну на досуге.
----- Всем привет, я вернулся
  | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 13 декабря 2007 16:47 · Поправил: DMD · Личное сообщение ·  #3
 
Во избежание путаницы и недоразумений, предлагаю смотреть версию 2.2
 --> берем здесь <-- http://rapidshare.com/files/76283669/Back2Life_2.2_.zip.html  .... если найдутся любители...
 там все почти все без изменений.. только upx добавился    для усиления эффекта      ps/
 релиз от dT присутсвует в ослике     | Сообщение посчитали полезным: | 
| 
 Ранг: 105.9 (ветеран), 1thx Активность: 0.09↘0
 Статус: Участник
 
 | Создано: 13 декабря 2007 17:31 · Поправил: Sturgeon · Личное сообщение ·  #4
 
DMD пишет:
предлагаю смотреть версию 2.2
 Вы это, типа...
 Когда посмотрите, статью напишите.
 Я вот тоже глянул прогу, а сделать ничего не смог. Вроде все и на виду, а хрен чего получается. Уровень пока низковат.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 6.2 (гость) Активность: 0=0
 Статус: Участник
 
 | Создано: 13 декабря 2007 18:44 · Поправил: Delphist · Личное сообщение ·  #5
 
DMD пишет:
dREAM TEAM, конечно, молодцы
 Что такое dREAM TEAM?
DMD пишет: предлагаю смотреть версию 2.2
 --> берем здесь <-- .... если найдутся любители
 А почему 2.2 чем 2.1 не устроил
Sturgeon пишет: Вроде все и на виду,
 Да... уж. Вы профессионалы, и то возникли сложности, а говорили ерунда.
 Автор Back2Life оказался не совсем дуроком.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0
 Статус: Участник
 
 | Создано: 13 декабря 2007 19:24 · Личное сообщение ·  #6
 
Delphist пишет:
Автор Back2Life оказался не совсем дуроком.
 Как говорится: сам себя не похвалишь - вылетишь не поймаешь.   ----- Всем привет, я вернулся
  | Сообщение посчитали полезным: | 
| 
 Ранг: 61.7 (постоянный), 12thx Активность: 0.09↘0.02
 Статус: Участник
 
 | Создано: 13 декабря 2007 19:28 · Личное сообщение ·  #7
 
Delphist 
dREAM TEAM - крэкерская команда
 2.2- смысла больше отламывать защиту у более свежей версии. 
DMD пишет: там все почти все без изменений.
 Вот одно, которое бросается в глаза - отсутствие ключей RegKey и UserName в реестре, видимо  , прога не пишет их значения, если не валидны (UserName, думаю, можно отбросить).
 UPX -это ради прикола, наверное...     | Сообщение посчитали полезным: | 
| 
  Ранг: 216.9 (наставник), 85thx Активность: 0.31↘0.15
 Статус: Участник
 X-Literator
 
 | Создано: 13 декабря 2007 23:27 · Личное сообщение ·  #8
 
Sturgeon пишет:
Вы это, типа...
 Когда посмотрите, статью напишите.
 Действительно крипто. Ниасилил ))
 Кто сможет - напишите, плз. Что-то мне подсказывает, что дело не в вычислительных мощностях, как тут писали   ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 61.7 (постоянный), 12thx Активность: 0.09↘0.02
 Статус: Участник
 
 | Создано: 14 декабря 2007 00:21 · Личное сообщение ·  #9
 
Gerpes пишет:
(UserName, думаю, можно отбросить).
    - ни хрена нельзя- при попытке подсунуть проге ключ старой версии, она начинает читать его, и номер - только вот потом что с ними делает- разобраться также не смог,...  Статейку бы не помешала, конечно...
  | Сообщение посчитали полезным: | 
| 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0
 Статус: Участник
 
 | Создано: 14 декабря 2007 09:04 · Личное сообщение ·  #10
 
Несмотря на то, что АВТОР откровенно издевается над теми, кого ОН называет "ВАМ профессионалам", топик возвращается в основной раздел.
----- Всем привет, я вернулся
  | Сообщение посчитали полезным: | 
| 
  Ранг: 247.7 (наставник), 3thx Активность: 0.16↘0
 Статус: Участник
 Халявщик
 
 | Создано: 14 декабря 2007 09:58 · Личное сообщение ·  #11
 
как то копал эту прогу только в виде плагина к тоталу. сначала взял версию 2.4 - так ниче и нашел    потом взял 2.3, к которой был серийник - оказалось что ф-и проверки ключа выглядят по разному в зависимости от валидности ключа.
----- Лень - это подсознательная мудрость
  | Сообщение посчитали полезным: | 
| 
 Ранг: 6.2 (гость) Активность: 0=0
 Статус: Участник
 
 | Создано: 14 декабря 2007 10:00 · Личное сообщение ·  #12
 
Gerpes пишет:
Несмотря на то, что АВТОР откровенно издевается над теми, кого ОН называет "ВАМ профессионалам", топик возвращается в основной раздел
 Back2Life - это не моя прога. Я написал "ВАМ профессионалам" потому-что в начале топика писали, что мол я обратился с детским лепетом, и даже тему переместили в раздел "Для новичков".
  | Сообщение посчитали полезным: | 
| 
 Ранг: 61.7 (постоянный), 12thx Активность: 0.09↘0.02
 Статус: Участник
 
 | Создано: 14 декабря 2007 16:59 · Личное сообщение ·  #13
 
Сенку за поднятое после бессонной ночи настроение - глюк кого-то или чего-то на миг сделал меня модератором        (сорри за оффтоп)
Delphist пишет: Back2Life - это не моя прога
    -Никто в это не верит, потому что 
Delphist пишет: Понимание взлома CrackMe и им подобные при изучении статей для меня не составляло труда
 И при этом ни одного слова о попытках исследования, поиска адресов, ключах реестра? - это даже не странно, это скорее очевидно.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 6.2 (гость) Активность: 0=0
 Статус: Участник
 
 | Создано: 14 декабря 2007 17:05 · Личное сообщение ·  #14
 
Gerpes пишет:
Back2Life - это не моя прога -Никто в это не верит, потому что
 Клянусь не моя прога, я Delphist - программер на Delphi. Настоящий автор Alex Mokrov, какой у него ник я не знаю. Я прикладной программер. Сам по суди был бы я настоящим автором, нафига мне на этом форуме вертиться, скажешь проверить надежность проги, тогда бы я проверял самую последнюю версию.
 Ещё раз повторю автор не я.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0
 Статус: Участник
 
 | Создано: 14 декабря 2007 21:38 · Личное сообщение ·  #15
 
Gerpes пишет:
Никто в это не верит
 -1 
 Я поверил сразу, как только человек об этом сказал (о чём и написал с извинениями в личку, надеюсь Delphist  прочёл).
Флуда попрошу не разводить, итак на две страницы накатали.
----- Всем привет, я вернулся
  | Сообщение посчитали полезным: | 
| 
  Ранг: 1131.7 (!!!!), 447thx Активность: 0.67↘0.2
 Статус: Участник
 
 | Создано: 15 декабря 2007 03:25 · Личное сообщение ·  #16
 
Хороший кракер должен быть хорошим аналитиком.
 1) Программа уже давно взломана и зарелизина.
 2) Исследовать просят не самую свежую версию.
 С учётом вышесказанного можно считать, что Delphist  - не автор.
 Однако лично я бы помогать не стал, так как если топик о помощи в исследовании, то надо бы выложить свои наработки, а их нет. Значит банальный запрос на взлом.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 329.6 (мудрец), 192thx Активность: 0.14↘0.01
 Статус: Участник
 
 | Создано: 15 декабря 2007 10:24 · Личное сообщение ·  #17
 
Delphist
На сайте ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/901-1000/ имеется прекрасная подборка статей Guillermo под общим названием  "Cazando Seriales". Guillermo уже написал 17 статей по поиску регистрационного кода для разных программ. Эти статьи расчитаны на новичков, и, на мой взгляд, очень неплохо написаны. Один недостаток - они написаны на испанском языке, но, с помощью переводчика PROMT6, их можно прочитать, тем более, что они снабжены хорошим графическим материалом.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 1045.7 (!!!!), 31thx Активность: 0.57↘0
 Статус: Участник
 
 | Создано: 15 декабря 2007 12:15 · Поправил: pavka · Личное сообщение ·  #18
 
del
  | Сообщение посчитали полезным: | 
| 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0
 Статус: Участник
 
 | Создано: 15 декабря 2007 12:25 · Личное сообщение ·  #19
 
Bitfry пишет:
Флуда попрошу не разводить, итак на две страницы накатали.
 Раскрываю значение слова флуд:
 пост не содержащий информации по сабжу*.
 Сабж equ реверс Back2Lifev с целью пройти(обойти) защиту.
 Кто не хочет помогать - не пишите вообще. 
 Кто не достиг определённого успеха по сабжу - не пишите вообще.
 Дальше буду удалять жестко.
----- Всем привет, я вернулся
  | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 17 декабря 2007 10:03 · Поправил: DMD · Личное сообщение ·  #20
 
Gideon Vi пишет:
Хороший кракер должен быть хорошим аналитиком.
 ...
 Значит банальный запрос на взлом.
 В этом случает ответ будет предельно краток и банален: посылаем в помощь топикстартеру ослика и он самостоятельно ищет релиз от dT..    тем более, что топикстартер спрашивал не лекарство.   Gerpes пишет: Вот одно, которое бросается в глаза - отсутствие ключей RegKey и UserName в реестре, видимо , прога не пишет их значения, если не валидны (UserName, думаю, можно отбросить).
 не стоит:
 004099DD  |. E8 CE1E0000              CALL    0040B8B0 					; >> Read Registry
.
 .
 
 >>
 0040BA22  |> 8D4D FC                  LEA     ECX, DWORD PTR [EBP-4]
 0040BA25  |. BA 70BB4000              MOV     EDX, 0040BB70                             ;  ASCII "UserName"
 0040BA2A  |. 8BC3                     MOV     EAX, EBX
 0040BA2C  |. E8 FFB00000              CALL    00416B30 					; >>
 0040BA31  |. 8B55 FC                  MOV     EDX, DWORD PTR [EBP-4]
 0040BA34  |. A1 7CB64100              MOV     EAX, DWORD PTR [41B67C]
 0040BA39  |. E8 2277FFFF              CALL    00403160
 0040BA3E  |. 8D4D FC                  LEA     ECX, DWORD PTR [EBP-4]
 0040BA41  |. BA 84BB4000              MOV     EDX, 0040BB84                             ;  ASCII "RegKey"
 0040BA46  |. 8BC3                     MOV     EAX, EBX
 0040BA48  |. E8 E3B00000              CALL    00416B30 					; >>
 <<
 
 .
 .
 00409BD5  |. E8 0EB6FFFF              CALL    <JMP.&user32.ShowWindow>                  ; \ShowWindow
 stack
 0012FF5C   001F024C  |hWnd = 001F024C ('Back2Life 2.2 [xxxxxx]',class='_Back2Life')
и еще
 [HKEY_CURRENT_USER\Software\Back2Life\2.2]
"UserName"="xxxxxx"
 "RegKey"="****************************************************"
как и прежде, обращение к реестру двойное: первый раз с буфером = NULL, второй раз уже действительно читаем.
 Пока ясно только одно:
 004099DD  - считали из реестра RegKey и UserName 
 00409BD5  - уже есть четкое определение "unregistered" or "registered". 
 => наша цель понять что происходит между двумя этими точками. и найти процедуру анализа.
 Процедур на этом пути не очень много.. апи - просто пропускаем. 
 Тут же есть уже всем, наверное, знакомая: 
 00409AEF  |. E8 64810000              CALL    00411C58 					; >>
 >>
 00411C58  /$ 53                       PUSH    EBX
 00411C59  |. 56                       PUSH    ESI
 00411C5A  |. 57                       PUSH    EDI
 00411C5B  |. 83C4 E4                  ADD     ESP, -1C
 00411C5E  |. BB 781B4100              MOV     EBX, 00411B78                             ;  Entry address
 00411C63  |. 891C24                   MOV     DWORD PTR [ESP], EBX
 00411C66  |. B8 0CCB4100              MOV     EAX, 0041CB0C
 00411C6B  |. 33C9                     XOR     ECX, ECX
 00411C6D  |. BA 0A000000              MOV     EDX, 0A
 00411C72  |. E8 A90AFFFF              CALL    00402720
 00411C77  |. B8 581C4100              MOV     EAX, 00411C58                             ;  Entry address
 00411C7C  |. 2BC3                     SUB     EAX, EBX
 00411C7E  |. 48                       DEC     EAX
 00411C7F  |. 894424 04                MOV     DWORD PTR [ESP+4], EAX
 00411C83  |. B9 0CCB4100              MOV     ECX, 0041CB0C
 00411C88  |. B8 781B4100              MOV     EAX, 00411B78                             ;  Entry address
 00411C8D  |. 8B5424 04                MOV     EDX, DWORD PTR [ESP+4]
 00411C91  |. E8 56FBFFFF              CALL    004117EC
 00411C96  |. 8B05 0CCB4100            MOV     EAX, DWORD PTR [41CB0C]
 00411C9C  |. 894424 0C                MOV     DWORD PTR [ESP+C], EAX
 00411CA0  |. 8B05 10CB4100            MOV     EAX, DWORD PTR [41CB10]
 00411CA6  |. 894424 10                MOV     DWORD PTR [ESP+10], EAX
 00411CAA  |. 66:8B05 14CB4100         MOV     AX, WORD PTR [41CB14]
 00411CB1  |. 66:894424 14             MOV     WORD PTR [ESP+14], AX
 00411CB6  |. 33DB                     XOR     EBX, EBX
 00411CB8  |. A1 7CB64100              MOV     EAX, DWORD PTR [41B67C]
 00411CBD  |. 8B00                     MOV     EAX, DWORD PTR [EAX]
 00411CBF  |. E8 6416FFFF              CALL    00403328
 00411CC4  |. 85C0                     TEST    EAX, EAX
 00411CC6  |. 7E 50                    JLE     SHORT 00411D18
 00411CC8  |. 894424 18                MOV     DWORD PTR [ESP+18], EAX
 00411CCC  |. C74424 08 01000000       MOV     DWORD PTR [ESP+8], 1
 00411CD4  |> A1 94B64100              /MOV     EAX, DWORD PTR [41B694]
 00411CD9  |. 8B00                     |MOV     EAX, DWORD PTR [EAX]
 00411CDB  |. E8 4816FFFF              |CALL    00403328
 00411CE0  |. 8BF8                     |MOV     EDI, EAX
 00411CE2  |. 85FF                     |TEST    EDI, EDI
 00411CE4  |. 7E 28                    |JLE     SHORT 00411D0E
 00411CE6  |. BE 01000000              |MOV     ESI, 1
 00411CEB  |> 43                       |/INC     EBX
 00411CEC  |. 8A4C1C 0B                ||MOV     CL, BYTE PTR [ESP+EBX+B]
 00411CF0  |. 33C0                     ||XOR     EAX, EAX
 00411CF2  |. 8AC1                     ||MOV     AL, CL
 00411CF4  |. 99                       ||CDQ
 00411CF5  |. F7FE                     ||IDIV    ESI
 00411CF7  |. 8A4424 08                ||MOV     AL, BYTE PTR [ESP+8]
 00411CFB  |. 32C1                     ||XOR     AL, CL
 00411CFD  |. 0AD0                     ||OR      DL, AL
 00411CFF  |. 88541C 0B                ||MOV     BYTE PTR [ESP+EBX+B], DL
 00411D03  |. 83FB 0A                  ||CMP     EBX, 0A
 00411D06  |. 75 02                    ||JNZ     SHORT 00411D0A
 00411D08  |. 33DB                     ||XOR     EBX, EBX
 00411D0A  |> 46                       ||INC     ESI
 00411D0B  |. 4F                       ||DEC     EDI
 00411D0C  |.^75 DD                    |\JNZ     SHORT 00411CEB
 00411D0E  |> FF4424 08                |INC     DWORD PTR [ESP+8]
 00411D12  |. FF4C24 18                |DEC     DWORD PTR [ESP+18]
 00411D16  |.^75 BC                    \JNZ     SHORT 00411CD4
 00411D18  |> 8D5424 0C                LEA     EDX, DWORD PTR [ESP+C]
 00411D1C  |. A1 94B64100              MOV     EAX, DWORD PTR [41B694]
 00411D21  |. 8B00                     MOV     EAX, DWORD PTR [EAX]
 00411D23  |. E8 ACF4FFFF              CALL    004111D4
 00411D28  |. 8D4C24 0C                LEA     ECX, DWORD PTR [ESP+C]
 00411D2C  |. B8 781B4100              MOV     EAX, 00411B78                             ;  Entry address
 00411D31  |. 8B5424 04                MOV     EDX, DWORD PTR [ESP+4]
 00411D35  |. E8 B2FAFFFF              CALL    004117EC
 00411D3A  |. 6A 0A                    PUSH    0A
 00411D3C  |. 6A 00                    PUSH    0
 00411D3E  |. 8B4C24 0C                MOV     ECX, DWORD PTR [ESP+C]
 00411D42  |. BA 681D4100              MOV     EDX, 00411D68                             ;  ASCII "KEY-122-58"
 00411D47  |. 8B4424 08                MOV     EAX, DWORD PTR [ESP+8]
 00411D4B  |. E8 F0560000              CALL    00417440
 00411D50  |. 84C0                     TEST    AL, AL
 00411D52  |. 74 05                    JE      SHORT 00411D59
 00411D54  |. E8 1FFEFFFF              CALL    00411B78
 00411D59  |> 83C4 1C                  ADD     ESP, 1C
 00411D5C  |. 5F                       POP     EDI
 00411D5D  |. 5E                       POP     ESI
 00411D5E  |. 5B                       POP     EBX
 00411D5F  \. C3                       RETN
 00411D60   . FFFFFFFF                 DD      FFFFFFFF
 00411D64   . 0A000000                 DD      0000000A
 00411D68   . 4B 45 59 2D 31 32 32 2D >ASCII   "KEY-122-58",0
но мы уже знаем, что 
 00411D4B  |. E8 F0560000              CALL    00417440
00411D50  |. 84C0                     TEST    AL, AL
есть обманка.. но присутствуют и другие процедуры. Вполне возможна маскировка в мимикрии.
 Так что, основная линия, вообщем, понятна.. остальное зависит от желания, терпения и усидчивости.. 
 может быть, и немного везения не помешает,,  Delphist пишет: Вы профессионалы, и то возникли сложности, а говорили ерунда.
 Автор Back2Life оказался не совсем дуроком.
 Будем считать, что все, кто погорячился с первого взгляда на таргет, уже покаялись...   тем более, что аффтора никто придурком не называл,,,    | Сообщение посчитали полезным: | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 03:31 · Личное сообщение ·  #21
 
С миру - по нитке, будет рубаха.((с) кто-то там)
 
0041339E      |.  50            PUSH EAX                                 ; /Count
 0041339F      |.  57            PUSH EDI                                 ; |Buffer
 004133A0      |.  53            PUSH EBX                                 ; |hWnd
 004133A1      |.  E8 2A1DFFFF   CALL <JMP.&user32.GetWindowTextA>        ; \GetWindowTextA
считываем введённый рег.код
 
...
 00413402      |.  8B45 F8       MOV EAX,[LOCAL.2]
 00413405      |.  BA 84354100   MOV EDX,00413584                         ;  ASCII "Back2Life 2.2 (2225)"
 0041340A      |.  E8 2900FFFF   CALL 00403438    проверка первой части кея  на соответствие  [Back2Life 2.2 (2225)]
 0041340F      |.  0F85 2C010000 JNZ 00413541    если не равно, то на выход
 00413415      |.  55            PUSH EBP                                 ; /Arg1
 00413416      |.  8D45 F8       LEA EAX,[LOCAL.2]                        ; |
 00413419      |.  E8 96FEFFFF   CALL 004132B4     ; проверка второй части кея на соответствие [xxxxxx]
 0041341E      |.  59            POP ECX
 0041341F      |.  84C0          TEST AL,AL
 00413421      |.  0F84 1A010000 JE 00413541
 00413427      |.  837D F8 00    CMP [LOCAL.2],0
 0041342B      |.  0F84 10010000 JE 00413541
 00413431      |.  55            PUSH EBP                                 ; /Arg1
 00413432      |.  8D45 F8       LEA EAX,[LOCAL.2]                        ; |
 00413435      |.  E8 7AFEFFFF   CALL 004132B4    ; проверка третьей части кея на соответствие [xxxxxx]
 0041343A      |.  59            POP ECX
 0041343B      |.  84C0          TEST AL,AL
 0041343D      |.  0F84 FE000000 JE 00413541
 00413443      |.  55            PUSH EBP                                 ; /Arg1
 00413444      |.  8D45 F4       LEA EAX,[LOCAL.3]                        ; |
 00413447      |.  E8 68FEFFFF   CALL 004132B4    ; проверка четвертой части кея на соответствие [xxxxx]
 ...
если всё ОК, то запишем данные в реестр, в ветку HKEY_CURRENT_USER\Software\Back2Life\2.2
 ...
 00413507      |> \BA A4354100   MOV EDX,004135A4                         ;  ASCII "Software\Back2Life\2.2"
 0041350C      |.  B8 01000080   MOV EAX,80000001
 00413511      |.  E8 DA29FFFF   CALL 00405EF0
 ...
 Получается, что ключеГ имеет вид:
 [Back2Life 2.2 (2225)]
 [xxxxxxx]
 [xxxxxxx]
 [xxxxxxx]
 Cтатична только первая часть ключа.
 Причём в реестр сохраняется только вторая и четвёртая части ключа. Вторая это UserName, четвёртая - RegKey.
 RegKey и есть походу КрИпТо.
 Далее при загрузке ститываем (0040B8B0) данные из реестра, в том числе и настройки программы.
 Подготавливаемся к проверке валидности рег. кея (тут особо не копал),
 связано ли это нагромождение кода с подготовкой к проверке хз, выглядит странно:
 
...
 00409A3D      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409A42      |.  C640 08 01    MOV BYTE PTR DS:[EAX+8],1
 00409A46      |.  B8 E81A4100   MOV EAX,00411AE8
 00409A4B      |.  8B15 70B64100 MOV EDX,DWORD PTR DS:[41B670]            ;  Back2Lif.0041C8D0
 00409A51      |.  8902          MOV DWORD PTR DS:[EDX],EAX
 00409A53      |.  68 14C94100   PUSH 0041C914                            ; pLocaltime = Back2Lif.0041C914
 00409A58      |.  E8 DBB3FFFF   CALL <JMP.&KERNEL32.GetLocalTime>        ; GetLocalTime
 00409A5D      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409A62      |.  83C0 26       ADD EAX,26
 00409A65      |.  50            PUSH EAX                                 ; /Arg1
 00409A66      |.  66:8B0D 1AC94>MOV CX,WORD PTR DS:[41C91A]              ; |
 00409A6D      |.  66:8B15 16C94>MOV DX,WORD PTR DS:[41C916]              ; |
 00409A74      |.  66:A1 14C9410>MOV AX,WORD PTR DS:[41C914]              ; |
 00409A7A      |.  E8 B9D2FFFF   CALL 00406D38                            ; \Back2Lif.00406D38
 00409A7F      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409A84      |.  66:8B40 26    MOV AX,WORD PTR DS:[EAX+26]
 00409A88      |.  8B15 A8B64100 MOV EDX,DWORD PTR DS:[41B6A8]            ;  Back2Lif.0041C854
 00409A8E      |.  66:8942 2C    MOV WORD PTR DS:[EDX+2C],AX
 00409A92      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409A97      |.  66:8B40 26    MOV AX,WORD PTR DS:[EAX+26]
 00409A9B      |.  8B15 A8B64100 MOV EDX,DWORD PTR DS:[41B6A8]            ;  Back2Lif.0041C854
 00409AA1      |.  66:8942 32    MOV WORD PTR DS:[EDX+32],AX
 00409AA5      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409AAA      |.  66:8B40 24    MOV AX,WORD PTR DS:[EAX+24]
 00409AAE      |.  8B15 A8B64100 MOV EDX,DWORD PTR DS:[41B6A8]            ;  Back2Lif.0041C854
 00409AB4      |.  66:8942 30    MOV WORD PTR DS:[EDX+30],AX
 00409AB8      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409ABD      |.  66:8B40 24    MOV AX,WORD PTR DS:[EAX+24]
 00409AC1      |.  8B15 A8B64100 MOV EDX,DWORD PTR DS:[41B6A8]            ;  Back2Lif.0041C854
 00409AC7      |.  66:8942 2A    MOV WORD PTR DS:[EDX+2A],AX
 00409ACB      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409AD0      |.  C640 35 02    MOV BYTE PTR DS:[EAX+35],2
 00409AD4      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409AD9      |.  C640 36 02    MOV BYTE PTR DS:[EAX+36],2
 00409ADD      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409AE2      |.  C640 37 02    MOV BYTE PTR DS:[EAX+37],2
 00409AE6      |.  A1 A8B64100   MOV EAX,DWORD PTR DS:[41B6A8]
 00409AEB      |.  C640 38 02    MOV BYTE PTR DS:[EAX+38],2
 00409AEF      |.  E8 64810000   CALL 00411C58        <<< ПРОВЕРКА ТУТА
...
 004117FE      |.  E8 15FBFFFF    CALL 00411318
 ...
 а тут вроде вызов RC2, хз как работает ))
 В версии 2.5 всё это "дело" более ярко выражено, ИМХО.
 Мож кто поделиться исходничками(delphi) с RC2 или нормальным описанием, как это дело работает, а то что-т чтение RFC не торкнуло, в инете ничего удобоваримого не нашёл, мож плохо искал.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 42.1 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 04:43 · Личное сообщение ·  #22
 | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 05:56 · Личное сообщение ·  #23
 
Сенкс, я  до этого скачал dcpcrypt2, но не торкнуло.
 Реализация типо есть, терь ещё бы и понять, что реализуем )).
 А нет что-т типо RFC, но попроще и на русском. (раскатал губу)
  | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 09:31 · Личное сообщение ·  #24
 
4t пишет:
Реализация типо есть, терь ещё бы и понять, что реализуем )).
 если все оказались правы и в таргете действительно RC2, то можно почитать вот это
 --> Жмем тут <-- http://astu.secna.ru/russian/students/personal/54gmz&54_alex/alg_rc2.htm
  | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 16:40 · Поправил: DMD · Личное сообщение ·  #25
 
4t пишет:
004117FE |. E8 15FBFFFF CALL 00411318
 ...
 а тут вроде вызов RC2, хз как работает ))
 мне кажется, что это только подготовительная процедура... или опять: использование не по назначению..   см. ниже
4t пишет: 00409AEF |. E8 64810000 CALL 00411C58 <<< ПРОВЕРКА ТУТА
 не похоже...
 я вынужден привести много кода и комментариев - возможно, это поможет понять суть происходящего:
 00409AEF  |. E8 64810000              CALL    00411C58 					; >>
 - - -
 
 >>
 .
 .
 00411C91  |. E8 56FBFFFF              CALL    004117EC					; >> (*)
 .
 .
 00411CD4  |> A1 94B64100              /MOV     EAX, DWORD PTR [41B694]
 00411CD9  |. 8B00                     |MOV     EAX, DWORD PTR [EAX]
 00411CDB  |. E8 4816FFFF              |CALL    00403328
 00411CE0  |. 8BF8                     |MOV     EDI, EAX
 00411CE2  |. 85FF                     |TEST    EDI, EDI
 00411CE4  |. 7E 28                    |JLE     SHORT 00411D0E
 00411CE6  |. BE 01000000              |MOV     ESI, 1
 00411CEB  |> 43                       |/INC     EBX
 00411CEC  |. 8A4C1C 0B                ||MOV     CL, BYTE PTR [ESP+EBX+B] 		; RegKey
 00411CF0  |. 33C0                     ||XOR     EAX, EAX
 00411CF2  |. 8AC1                     ||MOV     AL, CL
 00411CF4  |. 99                       ||CDQ
 00411CF5  |. F7FE                     ||IDIV    ESI
 00411CF7  |. 8A4424 08                ||MOV     AL, BYTE PTR [ESP+8]
 00411CFB  |. 32C1                     ||XOR     AL, CL
 00411CFD  |. 0AD0                     ||OR      DL, AL
 00411CFF  |. 88541C 0B                ||MOV     BYTE PTR [ESP+EBX+B], DL
 00411D03  |. 83FB 0A                  ||CMP     EBX, 0A
 00411D06  |. 75 02                    ||JNZ     SHORT 00411D0A
 00411D08  |. 33DB                     ||XOR     EBX, EBX
 00411D0A  |> 46                       ||INC     ESI
 00411D0B  |. 4F                       ||DEC     EDI
 00411D0C  |.^75 DD                    |\JNZ     SHORT 00411CEB
 00411D0E  |> FF4424 08                |INC     DWORD PTR [ESP+8]
 00411D12  |. FF4C24 18                |DEC     DWORD PTR [ESP+18] 			; RegKey lenght (0x34)
 00411D16  |.^75 BC                    \JNZ     SHORT 00411CD4
 
 0012FF40  01 00 00 00 						; equ UserName lenght
 0012FF40              79 91 D1 3A 04 B3 D0 02 C1 EA
 
 rez
 0012FF40  07 00 00 00
 0012FF40              7F BB FF 3B 07 BF FD 07 FB FD
 
 .
 .
 00411D23  |. E8 ACF4FFFF              CALL    004111D4
 
 RegKey "980A770637S4D40EEF0A4028BDE0EBDJ4222E9C0EC885A541457" ASCII -> HEX до первого non_digit_simbol
 
 0012FF40              98 0A 77 06 37 00 00 00 00 00
 
 .
 .
 00411D35  |. E8 B2FAFFFF              CALL    004117EC 			; >> (**)
 
 rez
 0012FF40              56 A2 63 42 C6 48 80 B5 3E 5B
 
 
 * * *
 
 >> (*)
 004117EC  /$ 53                       PUSH    EBX
 004117ED  |. 56                       PUSH    ESI
 004117EE  |. 57                       PUSH    EDI
 004117EF  |. 8BF1                     MOV     ESI, ECX
 004117F1  |. 8BFA                     MOV     EDI, EDX
 004117F3  |. 8BD8                     MOV     EBX, EAX
 004117F5  |. 8BC6                     MOV     EAX, ESI
 004117F7  |. 33C9                     XOR     ECX, ECX
 004117F9  |. BA 0A000000              MOV     EDX, 0A
 004117FE  |. E8 15FBFFFF              CALL    00411318 					; Get Table 0x80
 ; (0x0, 0x0, 0x0A)
 0041CA80              D9 00 00 00 00 00 00 00 00 00 D9 16
 0041CA90  53 1F A2 41 D6 A8 24 87 6F 52 51 F8 D0 7E 3B 1B
 0041CAA0  82 E9 42 5A 50 73 93 7E 02 8B A0 AA B9 83 CF 65
 0041CAB0  0A 84 EE C3 DA 80 95 62 8F E5 2E 3A 61 87 BF 82
 0041CAC0  8E C5 3B 17 60 D0 8F 53 37 02 96 30 9B 3A D0 C2
 0041CAD0  75 05 5C B6 A7 2C AE BB AC 43 FC 78 E1 74 88 23
 0041CAE0  00 5B ED BD 02 D5 B4 61 48 9B 5E 02 2E 5F BF 5A
 0041CAF0  D8 95 E2 66 E3 33 BF FB 36 96 43 63 60 92 EF 59
 0041CB00  62 3C C7 3C
 
 00411803  |. 56                       PUSH    ESI                                       ; /Arg1 = 0041CB0C
 00411804  |. 8BCF                     MOV     ECX, EDI                                  ; |
 00411806  |. 8BD3                     MOV     EDX, EBX                                  ; |
 00411808  |. 8BC3                     MOV     EAX, EBX                                  ; |
 0041180A  |. E8 EDFEFFFF              CALL    004116FC                                  ; \Back2Lif.004116FC
 
 Base_Table - 411B78, 0x0A first bytes ( Table will be owewrite! )
 
 00411B78  ED 3A 1A D2 71 58 6E F1 91 41 B2 80 07 52 B5 A0
 00411B88  FA 11 F0 A1 48 69 F0 3A 04 E5 B5 D0 A8 36 70 97
 00411B98  99 40 AD 03 8E A6 89 2C 7D CC BD B1 65 53 91 4F
 00411BA8  EB 7E D9 70 DB 15 DD 0D 13 B6 22 49 9D 7D 23 1E
 00411BB8  E2 6E 40 33 81 6C 25 D3 6B 42 2A 76 CC 62 6E 4C
 00411BC8  0B DA 70 1E 05 6F C0 B5 4E 2E F9 C4 44 50 5E DF
 00411BD8  D7 00 DE 49 32 8F 95 EF 9C C1 8F 71 7A D5 4C 79
 00411BE8  6C 8D 8A 83 61 2A F6 6D 30 6D 60 05 69 28 C6 EE
 00411BF8  04 28 CB 7C C8 F7 C3 00 24 82 A1 9C 91 A7 6D 5A
 00411C08  C6 37 17 4C 7C 0D F8 E9 AB F0 24 B4 E7 9B 74 24
 00411C18  83 64 A1 25 5F 68 E7 B0 6F 48 FD 39 13 18 A0 88
 00411C28  85 45 FC 4F 13 E1 51 F7 7C E4 D8 FC B2 C6 2C 94
 00411C38  EA ED B7 FD 33 EE E7 5C 5E B1 82 F7 97 F6 27 DF
 00411C48  4C 51 EA 57 7C 93 E0 05 D6 8A D4 49 98 E0 F4 00
 
 00411B70                          ED 3A 1A D2 71 58 6E F1
 00411B80  91 41
 
 0041CB00                                      79 91 D1 3A
 0041CB10  04 B3 D0 02 C1 EA
 
 0041CB0C  79 91 D1 3A 04 B3 D0 02 C1 EA
 
 0041180F  |. E8 50030000              CALL    00411B64 				; clear memory block
 00411814  |. 5F                       POP     EDI
 00411815  |. 5E                       POP     ESI
 00411816  |. 5B                       POP     EBX
 00411817  \. C3                       RETN
 <<
 
 - - -
 
 
 >> (**)
 004117EC  /$ 53                       PUSH    EBX
 004117ED  |. 56                       PUSH    ESI
 004117EE  |. 57                       PUSH    EDI
 004117EF  |. 8BF1                     MOV     ESI, ECX
 004117F1  |. 8BFA                     MOV     EDI, EDX
 004117F3  |. 8BD8                     MOV     EBX, EAX
 004117F5  |. 8BC6                     MOV     EAX, ESI
 004117F7  |. 33C9                     XOR     ECX, ECX
 004117F9  |. BA 0A000000              MOV     EDX, 0A
 004117FE  |. E8 15FBFFFF              CALL    00411318 				; >>
 
 >>
 .
 .
 0041134D  |. 8BD3                     MOV     EDX, EBX
 0041134F  |. 83FA 7F                  CMP     EDX, 7F
 00411352  |. 7F 2B                    JG      SHORT 0041137F
 00411354  |. 8D4416 0F                LEA     EAX, DWORD PTR [ESI+EDX+F]
 00411358  |> 8BCA                     /MOV     ECX, EDX
 0041135A  |. 2BCB                     |SUB     ECX, EBX
 0041135C  |. 0FB64C0E 10              |MOVZX   ECX, BYTE PTR [ESI+ECX+10]
 00411361  |. 0FB638                   |MOVZX   EDI, BYTE PTR [EAX]
 00411364  |. 03CF                     |ADD     ECX, EDI
 00411366  |. 81E1 FF000000            |AND     ECX, 0FF
 0041136C  |. 8A89 4CB54100            |MOV     CL, BYTE PTR [ECX+41B54C]
 00411372  |. 8848 01                  |MOV     BYTE PTR [EAX+1], CL
 00411375  |. 42                       |INC     EDX
 00411376  |. 40                       |INC     EAX
 00411377  |. 81FA 80000000            |CMP     EDX, 80
 0041137D  |.^75 D9                    \JNZ     SHORT 00411358
 0041137F  |> 33C0                     XOR     EAX, EAX
 00411381  |. 8A46 10                  MOV     AL, BYTE PTR [ESI+10]
 00411384  |. 8A80 4CB54100            MOV     AL, BYTE PTR [EAX+41B54C]
 0041138A  |. 8846 10                  MOV     BYTE PTR [ESI+10], AL
 
 tab (98 0A 77 06 37 00 00 00 00 00 , 0, 0X0A )
 
 0041CA80              4B 0A 77 06 37 00 00 00 00 00 4B BE
 0041CA90  B7 55 35 B7 7A D5 9E A4 2E B9 F8 8C 5D 2B 51 4F
 0041CAA0  B1 BE B9 C7 31 55 3A 69 36 52 C4 EA 6E B7 BB C6
 0041CAB0  D9 65 5E 99 3C 4F 55 4A DD 6E 1C E8 B2 14 12 BF
 0041CAC0  2B EF 67 9E 36 FB F4 28 21 0D F0 A9 C6 46 C8 98
 0041CAD0  35 3C 3C 56 B2 30 9C 34 FE 49 1E D4 C6 44 9C 67
 0041CAE0  C4 0A 28 11 32 B5 2F F6 D2 95 3D 1C CE A9 3F E5
 0041CAF0  2B 9A BC 75 3A E4 3A 1B D4 02 81 88 CE 93 6C 12
 0041CB00  A7 FA BA 25
 <<
 
 00411803  |. 56                       PUSH    ESI                                       ; /Arg1 = 0012FF44
 00411804  |. 8BCF                     MOV     ECX, EDI                                  ; |
 00411806  |. 8BD3                     MOV     EDX, EBX                                  ; |
 00411808  |. 8BC3                     MOV     EAX, EBX                                  ; |
 0041180A  |. E8 EDFEFFFF              CALL    004116FC                                  ; \Back2Lif.004116FC
 >>
 
 before
 00411B78  4F EF D7 41 58 E6 5C B3 5A 06 5A 18 C7 0B EE CA
 00411B88  76 0C 72 EE 5E 53 31 00 3F DB 72 92 99 84 5E 42
 00411B98  42 BE E0 B2 ED 58 31 F4 DF 38 A4 E5 BB 3F 59 47
 00411BA8  4D CA F4 B2 0A 38 73 39 90 41 D6 13 60 6D 92 7E
 00411BB8  68 D2 9A 67 FB E1 12 8D 44 46 F5 3D 42 DB 4B 71
 00411BC8  F3 DE 78 46 92 69 7C E7 2C F9 A6 20 7E B7 C2 85
 00411BD8  D6 6C 93 16 C9 A0 2A D6 C7 25 9A E4 36 DA 4A DA
 00411BE8  AA 6D 29 7A 48 5E 5E 86 CA 28 3F E1 69 90 4A D1
 00411BF8  DC 96 A7 50 D0 93 DA 96 78 AB 2A 9E 83 CA 38 91
 00411C08  C9 CA 24 84 01 45 77 7C E8 15 2E 52 D0 49 72 A5
 00411C18  0E 88 37 B8 6A BA 60 AE 3F 6C 98 B8 0E 8F 1C 98
 00411C28  FD 7E E2 F1 96 AD AD EF DF 1F 93 9C A4 37 ED 94
 00411C38  A2 2A E5 C9 B8 1C D6 35 CC B5 DE A6 0E A7 6D 9F
 00411C48  2C 64 46 CF 80 9F 79 CE C2 EB D1 A3 26 D6 CC 00
 | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 18 декабря 2007 16:45 · Поправил: DMD · Личное сообщение ·  #26
 
все сразу не поместилось..
 after
00411B78  18 18 71 45 F5 0C 57 15 BD A9 04 5B B2 8F 55 06
 00411B88  40 C9 3B F6 25 B4 24 3A 27 50 91 74 F9 94 B0 FE
 00411B98  1F EE 71 04 2D 98 DB 9C 65 6E CE 0A CF E7 5F D2
 00411BA8  4B 6E 6C 5B 79 EF 05 6B A7 2F 52 FC 93 FA 01 50
 00411BB8  73 D6 9B EF 90 AF 72 D8 65 E8 10 B5 62 FF C2 F5
 00411BC8  70 1E 28 35 FB C1 08 52 5D 31 0F 1B 03 2B 4B 1C
 00411BD8  F1 A7 A8 46 B5 6F C4 07 CE FA E6 8B 12 3D 04 D1
 00411BE8  F1 2F 25 9F 93 BB 1B 54 3D 0E 39 D8 09 BA C2 00
 00411BF8  35 0B 2B F3 B4 BD AF 59 BD 5C 1B 34 BE 46 05 64
 00411C08  EC BF 23 0E F7 01 21 7E 04 CA 01 E3 13 9E CD 21
 00411C18  C0 45 E8 A3 1F 96 82 66 84 42 D1 F0 44 4A 81 80
 00411C28  82 73 1B 2B 51 CD 40 9B 14 AC E9 2D F1 61 7D 44
 00411C38  68 8C B8 17 0A 36 31 E7 56 E8 8B F8 46 10 C6 65
 00411C48  2F 48 A3 41 D3 2F E3 8A 87 DE F4 C0 46 85 BE 00
 
 rez
 0012FF40              56 A2 63 42 C6 48 80 B5 3E 5B
 
 0041180F  |. E8 50030000              CALL    00411B64
 00411814  |. 5F                       POP     EDI
 00411815  |. 5E                       POP     ESI
 00411816  |. 5B                       POP     EBX
 00411817  \. C3                       RETN
 <<
 
 * * *
в двух словах вот что происходит: через блоки данных, которые мы первоначально приняли за закриптованные процедуры (411B78), происходит раскрытие 0х80 байтного блока, из которого получается (условное название!) mini-key длиной 0х0А. в разных местах кол-во циклов - разное и зависит от длины UserName, длины RegKey и значения RegKey до первого не цифрового символа .
 ок, получили mini-key. он лежит в стеке.. и вот что самое гнустное,  перед 
 00411D59  |> 83C4 1C                  ADD     ESP, 1C
00411D5C  |. 5F                       POP     EDI
 00411D5D  |. 5E                       POP     ESI
 00411D5E  |. 5B                       POP     EBX
 00411D5F  \. C3                       RETN
вид стека
 0012FF38   00411B78  Entry address
0012FF3C   000000DF
 0012FF40   00000007
 0012FF44   4263A256
 0012FF48   B58048C6
 0012FF4C   00025B3E
и вид сбоку
 0012FF40              56 A2 63 42 C6 48 80 B5 3E 5B это и есть mini-key
 а на RET верхушка стека вот такая (естественно!)
 0012FF60   00409AF4  RETURN to Back2Lif.00409AF4 from Back2Lif.00411C58те.  при выполнении следующих процедур эта область стека совершенно правильно и банально затирается чем нужно далее по коду... 
 единственное, что остается доступно - модифицированный блок 411B78. Нужен он далее или нет.. пока не понятно.. 
 до 
 00409BA3  |. E8 707C0000              CALL    00411818включительно, это блок не используется. Кстати, от считывания из реестра только в процедуре 00411818 используется RegName...
 а дальше уже следуют:
 00409BB1  |. 6A 03                    PUSH    3                                         ; /ShowState = SW_SHOWMAXIMIZED
00409BB3  |. A1 24B74100              MOV     EAX, DWORD PTR [41B724]                   ; |
 00409BB8  |. 8B00                     MOV     EAX, DWORD PTR [EAX]                      ; |
 00409BBA  |. 50                       PUSH    EAX                                       ; |hWnd
 00409BBB  |. E8 28B6FFFF              CALL    <JMP.&user32.ShowWindow>                  ; \ShowWindow
 00409BC0  |. EB 3E                    JMP     SHORT 00409C00
 00409BC2  |> A1 34C94100              MOV     EAX, DWORD PTR [41C934]
 00409BC7  |. 85C0                     TEST    EAX, EAX
 00409BC9  |. 75 11                    JNZ     SHORT 00409BDC
 00409BCB  |. 6A 01                    PUSH    1                                         ; /ShowState = SW_SHOWNORMAL
 00409BCD  |. A1 24B74100              MOV     EAX, DWORD PTR [41B724]                   ; |
 00409BD2  |. 8B00                     MOV     EAX, DWORD PTR [EAX]                      ; |
 00409BD4  |. 50                       PUSH    EAX                                       ; |hWnd
 00409BD5  |. E8 0EB6FFFF              CALL    <JMP.&user32.ShowWindow>                  ; \ShowWindow
 00409BDA  |. EB 24                    JMP     SHORT 00409C00
 00409BDC  |> 6A 40                    PUSH    40                                        ; /Flags = SWP_SHOWWINDOW
 00409BDE  |. 50                       PUSH    EAX                                       ; |Height
 00409BDF  |. A1 30C94100              MOV     EAX, DWORD PTR [41C930]                   ; |
 00409BE4  |. 50                       PUSH    EAX                                       ; |Width => 23A (570.)
 00409BE5  |. A1 2CC94100              MOV     EAX, DWORD PTR [41C92C]                   ; |
 00409BEA  |. 50                       PUSH    EAX                                       ; |Y => 50 (80.)
 00409BEB  |. A1 28C94100              MOV     EAX, DWORD PTR [41C928]                   ; |
 00409BF0  |. 50                       PUSH    EAX                                       ; |X => 82 (130.)
 00409BF1  |. 6A 00                    PUSH    0                                         ; |InsertAfter = HWND_TOP
 00409BF3  |. A1 24B74100              MOV     EAX, DWORD PTR [41B724]                   ; |
 00409BF8  |. 8B00                     MOV     EAX, DWORD PTR [EAX]                      ; |
 00409BFA  |. 50                       PUSH    EAX                                       ; |hWnd
 00409BFB  |. E8 D8B5FFFF              CALL    <JMP.&user32.SetWindowPos>                ; \SetWindowPos
где уже ясно - зарегистрирован таргет или нет...
 Видно придется разбирать по косточкам процедуру 00411818..
 ps/ а где, собственно, Delphist  ?!   кто помогать будет?!   кто все это начал?!     | Сообщение посчитали полезным: | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 19 декабря 2007 01:10 · Личное сообщение ·  #27
 
DMD пишет:
если все оказались правы и в таргете действительно RC2, то можно почитать вот это
 --> Жмем тут <--
 Маловато будет. Нужно больше, я тугодуммм   .
DMD пишет: Видно придется разбирать по косточкам процедуру 00411818..
 Придёться   .
 
004117EC  /$  PUSH EBX
 004117ED  |.  PUSH ESI
 004117EE  |.  PUSH EDI
 004117EF  |.  MOV ESI,ECX
 004117F1  |.  MOV EDI,EDX
 004117F3  |.  MOV EBX,EAX
 004117F5  |.  MOV EAX,ESI
 004117F7  |.  XOR ECX,ECX
 004117F9  |.  MOV EDX,0A       ; < размер ключа ?
 004117FE  |.  CALL 00411318    ;InitKey
 
а сам ключ где ?
 Это походу инициализация ключа (или как там).
 
00411318  /$  PUSH EBX
 00411319  |.  PUSH ESI
 0041131A  |.  PUSH EDI
 0041131B  |.  MOV EBX,EDX
 0041131D  |.  MOV EDI,EAX
 0041131F  |.  MOV ESI,0041CA74              ; 0041CA74+10h = указатель на буфер
 00411324  |.  MOV EAX,ESI                   ;arg = buf (EAX)
 00411326  |.  XOR ECX,ECX                   ;arg = Value (0)
 00411328  |.  MOV EDX,8                     ;arg = count (8)
 0041132D  |.  CALL 00402720                 ; FillChar
 00411332  |.  LEA EAX,DWORD PTR DS:[ESI+8]         ;arg = buf (EAX)
 00411335  |.  XOR ECX,ECX                          ;arg = Value (0)
 00411337  |.  MOV EDX,8                            ;arg = count (8)
 0041133C  |.  CALL 00402720                        ; FillChar
 00411341  |.  LEA EDX,DWORD PTR DS:[ESI+10] ; arg = Dest(EDX)
 00411344  |.  MOV EAX,EDI                   ; arg = Source (EAX)
 00411346  |.  MOV ECX,EBX                   ; arg = Count (ECX)
 00411348  |.  CALL 00402618                 ; Move
 0041134D  |.  MOV EDX,EBX
 0041134F  |.  CMP EDX,7F
 00411352  |.  JG SHORT 0041137F
 00411354  |.  LEA EAX,DWORD PTR DS:[ESI+EDX+F]
 00411358  |>  /MOV ECX,EDX                        ; цикл - расширение ключа к 128 байтам (вроде так)
 0041135A  |.  |SUB ECX,EBX
 0041135C  |.  |MOVZX ECX,BYTE PTR DS:[ESI+ECX+10]
 00411361  |.  |MOVZX EDI,BYTE PTR DS:[EAX]
 00411364  |.  |ADD ECX,EDI
 00411366  |.  |AND ECX,0FF
 0041136C  |.  |MOV CL,BYTE PTR DS:[ECX+41B54C]
 00411372  |.  |MOV BYTE PTR DS:[EAX+1],CL
 00411375  |.  |INC EDX
 00411376  |.  |INC EAX
 00411377  |.  |CMP EDX,80
 0041137D  |.^ \JNZ SHORT 00411358
 0041137F  |>  XOR EAX,EAX
 00411381  |.  MOV AL,BYTE PTR DS:[ESI+10]
 00411384  |.  MOV AL,BYTE PTR DS:[EAX+41B54C]
 0041138A  |.  BYTE PTR DS:[ESI+10],AL
 0041138D  |.  POP EDI
 0041138E  |.  POP ESI
 0041138F  |.  POP EBX
 00411390  \.  RET
примерный аналог(выдрано из dcpcrypt2):
 
procedure TDCP_rc2.InitKey(const Key; Size: longword);
 var
 i: longword;
 KeyB: array[0..127] of byte;
 begin
 Move(Key,KeyB,Size div 8);
 for i:= (Size div 8) to 127 do
 KeyB[i]:= sBox[(KeyB[i-(Size div 8)]+KeyB[i-1]) and $FF];
 KeyB[0]:= sBox[KeyB[0]];
 Move(KeyB,KeyData,Sizeof(KeyData));
 end;
Key - это наверное ключ, а Size - размер ключа ?   .
 М-да.
 Что-то подсказывает, что я каши мало ел   .
  | Сообщение посчитали полезным: | 
| 
 Ранг: 85.5 (постоянный) Активность: 0.04↘0
 Статус: Участник
 
 | Создано: 19 декабря 2007 10:18 · Поправил: DMD · Личное сообщение ·  #28
 
4t пишет:
004117F9 |. MOV EDX,0A ; < размер ключа ?
 004117FE |. CALL 00411318 ;InitKey
 
 а сам ключ где ?
 
 Это походу инициализация ключа (или как там).
 Да, похоже на инициализацию..
 0х0А - это размер инициализирующей последовательности
 в самом простом случае это : 00 00 00 00 00 00 00 00 00 00. и с помощью элементов таблицы  41B54C получаем все 0х80 байт.
 ( в процедуре 411818 инициализирующая последовательность - UserName )
 потом в
 0041180A  |. E8 EDFEFFFF              CALL    004116FC                                  ; \Back2Lif.004116FC
 из полученной таблицы получаем "свертку" размером 0х0А... (я ее условно mini-key обозвал).
 0041180F  |. E8 50030000              CALL    00411B64
 очистили 0х80 таблицу...
 вот тут-то и возникает самый интересный вопрос: с чем имеем дело? RC2 ли это?!    хотя все анализаторы показали именно RC2...
  | Сообщение посчитали полезным: | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 19 декабря 2007 22:33 · Личное сообщение ·  #29
 
00409AEB |. C640 38 02 MOV BYTE PTR DS:[EAX+38],2 
DMD пишет:00409AEF |. E8 64810000 CALL 00411C58 <<< ПРОВЕРКА ТУТА
не похоже...
 Да, это обманка походу.
 Проверка дальше:
 
00409B91  |.  E8 66D6FFFF   CALL 004071FC                            ; \Back2Lif.004071FC
 00409B96  |.  8B15 C8B64100 MOV EDX,DWORD PTR DS:[41B6C8]            ;  Back2Lif.0041C8B4
 00409B9C  |.  8902          MOV DWORD PTR DS:[EDX],EAX
 00409B9E  |.  E8 79FCFFFF   CALL 0040981C
 00409BA3  |.  E8 707C0000   CALL 00411818                            ;  \ Проверка (часть проверки)
Причём прога определяет, если эту процедуру трейсят или в ней установлены брейкпоинты, хз как.
  | Сообщение посчитали полезным: | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 19 декабря 2007 22:35 · Личное сообщение ·  #30
 
По поводу RC2, в кейгене тож присутствует ;).
  | Сообщение посчитали полезным: | 
| 
 Ранг: 38.3 (посетитель) Активность: 0.02↘0
 Статус: Участник
 
 | Создано: 20 декабря 2007 03:20 · Поправил: 4t · Личное сообщение ·  #31
 
00411818   $  PUSH EBP
00411819   .  MOV EBP,ESP
 0041181B   .  ADD ESP,-1C
 0041181E   .  PUSH EBX
 0041181F   .  PUSH ESI
 00411820   .  PUSH EDI
 00411821   .  MOV DWORD PTR DS:[41CB04],0FE
 0041182B   .  MOV EAX,DWORD PTR DS:[41CB04]
 00411830   .  MOV ECX,19
 00411835   .  CDQ
 00411836   .  IDIV ECX
 00411838   .  MOV DWORD PTR DS:[41CB08],EAX
 0041183D   .  MOV EAX,DWORD PTR DS:[41B694]
 00411842   .  CMP DWORD PTR DS:[EAX],0                      ; не равняется ли RegKey 0
 00411845   .  JE 00411A84                                                           ; если да, то на выход
 0041184B   .  MOV EAX,DWORD PTR DS:[41B67C]
 00411850   .  CMP DWORD PTR DS:[EAX],0                                   ; не равняется ли UserName 0
 00411853   .  JE 00411A84                                                            ; если да, то на выход
 00411859   .  XOR EBX,EBX
 0041185B   .  LEA EAX,DWORD PTR SS:[EBP-A]                        {<- очищаем буфер
 0041185E   .  XOR ECX,ECX
 00411860   .  MOV EDX,0A
 00411865   .  CALL 00402720                                                  ;  FillChar ->}
 0041186A   .  MOV EAX,DWORD PTR DS:[41B67C]
 0041186F   .  MOV EAX,DWORD PTR DS:[EAX]                                        ;  | offset UserName
 00411871   .  CALL 00403328                                                                ;  \ Get UserName length
 00411876   .  TEST EAX,EAX
 00411878   .  JLE SHORT 004118A5
 0041187A   .  MOV ESI,1                                                   ;  {<- UserName не должно быть больше 10 символов
 0041187F   >  INC EBX                                                     ;     иначе приведём его к 10 символам:
 00411880   .  MOV EDX,DWORD PTR DS:[41B67C]           ;   11 - станет первым, 12 - 2, и так далее (по кругу).
 00411886   .  MOV EDX,DWORD PTR DS:[EDX]                  ;   обозвал FixRegName
 00411888   .  MOV DL,BYTE PTR DS:[EDX+ESI-1]
 0041188C   .  MOV BYTE PTR SS:[EBP+EBX-B],DL
 00411890   .  CMP EBX,0A
 00411893   .  SETL DL
 00411896   .  AND EDX,0FF
 0041189C   .  IMUL EDX,EBX
 0041189F   .  MOV EBX,EDX
 004118A1   .  INC ESI
 004118A2   .  DEC EAX
 004118A3   .^ JNZ SHORT 0041187F                                               ;                ->}
 004118A5   >  LEA EAX,DWORD PTR SS:[EBP-14]                            ;  {<- очищаем буфер
 004118A8   .  XOR ECX,ECX
 004118AA   .  MOV EDX,0A
 004118AF   .  CALL 00402720                                                         ;  \ FillChar  ->}
 004118B4   .  LEA EDX,DWORD PTR SS:[EBP-14]                           ;  | offset buf
 004118B7   .  MOV EAX,DWORD PTR DS:[41B694]
 004118BC   .  MOV EAX,DWORD PTR DS:[EAX]                               ;  | offset RegKEY
 004118BE   .  CALL 004111D4                                                        ;  \ StrToInt (до первого no_HEX символа, огранечение 10 байт) = обозвал xb_RegKey
 004118C3   .  MOV ESI,EAX
 004118C5   .  LEA ECX,DWORD PTR SS:[EBP-A]                        ;  | offset FixRegName
 004118C8   .  MOV EDX,ESI
 004118CA   .  SAR EDX,1                                            ; EDX < RegKey (количество цифр до первой буквы) div 2
 004118CC   .  JNS SHORT 004118D1
 004118CE   .  ADC EDX,0
 004118D1   >  LEA EAX,DWORD PTR SS:[EBP-14]                                ;  | offset xb_RegKey
 004118D4   .  CALL 004117EC                                                              ;  \ RC2
 004118D9   .  MOV EAX,ESI
 004118DB   .  SUB EAX,7
 004118DE   .  MOV DWORD PTR DS:[41CB08],EAX
 004118E3   .  MOV EAX,DWORD PTR SS:[EBP-14]                                  ;  {<- сохранеям mini-key (0Ah, )
 004118E6   .  MOV DWORD PTR SS:[EBP-A],EAX                                    ;    1 часть
 004118E9   .  MOV EAX,DWORD PTR SS:[EBP-10]
 004118EC   .  MOV DWORD PTR SS:[EBP-6],EAX                                   ;    2 часть
 004118EF   .  MOV AX,WORD PTR SS:[EBP-C]
 004118F3   .  MOV WORD PTR SS:[EBP-2],AX                                        ;    3 часть        ->}
 004118F7   .  LEA ECX,DWORD PTR SS:[EBP-A]                             ;  | offset mini-key
 004118FA   .  MOV EDX,00411B64                                                 ;  | buf
 004118FF   .  MOV EAX,00411394                                                 ;  | buf
 00411904   .  CALL 004112D8                                                      ;  \ XorBlock
 00411909   .  MOV EAX,004111D4                    ;  Entry address
 0041190E   .  SUB EAX,00411094                     ;  Entry address
 00411914   .  DEC EAX
 00411915   .  MOV DWORD PTR SS:[EBP-1C],EAX
 00411918   .  MOV EAX,DWORD PTR SS:[EBP-1C]
 0041191B   .  CALL 004024FC                                                                ;  \ ReallocMem
 00411920   .  MOV DWORD PTR SS:[EBP-18],EAX
 00411923   .  MOV EDX,00411094                                                       ;  {<-| offset crypt_proc
 00411928   .  MOV ECX,DWORD PTR SS:[EBP-1C]                                  ;     | размер (13Fh)
 0041192B   .  MOV EAX,DWORD PTR SS:[EBP-18]                                  ;     | offset buf
 0041192E   .  CALL 00405228                                                               ;     \ Move (сохраняем crypt_proc) ->}
 00411933   .  LEA ECX,DWORD PTR SS:[EBP-A]                                   ;  | mini-key (0Ah)
 00411936   .  MOV EAX,00411094                                                       ;  | offset crypt_proc
 0041193B   .  MOV EDX,DWORD PTR SS:[EBP-1C]                                ;  | зазмер (13Fh)
 0041193E   .  CALL 004117EC                                                             ;  \ RC2 (Decrypt)
 00411943   .  XOR EAX,EAX
 00411945   .  PUSH EBP
 00411946   .  PUSH 00411981
 0041194B   .  PUSH DWORD PTR FS:[EAX]
 0041194E   .  MOV DWORD PTR FS:[EAX],ESP
 00411951   .  MOV EBX,00411094                    ;  Entry address
 00411956   .  PUSH 0A
 00411958   .  PUSH 0
 0041195A   .  MOV ECX,DWORD PTR SS:[EBP-1C]
 0041195D   .  MOV EDX,00411A94                                          ;  ASCII "KEY-122-58"
 00411962   .  MOV EAX,EBX                                                    ;  |
 00411964   .  CALL 00417440                                                ;  \ проверка, верно ли раскриптовали процедуру
 00411969   .  TEST AL,AL                                                        ; если нет
 0041196B   .  JE SHORT 00411977                                         ; то прыгнем
 0041196D   .  MOV EDX,ESI
 0041196F   .  LEA EAX,DWORD PTR SS:[EBP-A]
 00411972   .  CALL 00411094                                                ;  \ crypt_proc
 00411977   >  XOR EAX,EAX
 00411979   .  POP EDX
 0041197A   .  POP ECX
 0041197B   .  POP ECX
 0041197C   .  MOV DWORD PTR FS:[EAX],EDX
 0041197F   .  JMP SHORT 00411995
 00411981   .^ JMP 00402B54
Этот кусочек разложил(вроде). Как ломается хз, кейген конечно проще разложить ;).
 Тут возник вопрос:
 XorBlock в dcpcrypt присутсвует, а в dcpcrypt2 его нету, алгоритм вроде один и тот же - RC2.
 В чём прикол тогда ?.
 И куда делся аффтар ?
  | Сообщение посчитали полезным: |