ISoft Hotel

Тема в разделе "WASM.RESEARCH", создана пользователем Twister, 28 ноя 2007.

  1. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Дублирую тебу здесь, ибо на CrackLab'e полная тишина...

    Доброго всем времени суток.
    Я не являюсь профессиональным крякером - исследую только для себя по необходимости. Посему моя проблема для кого-то может показаться тривиальной. Но я продолжу...

    Итак, данная программа написана на Delphi5, ни чем не запакована. Есть тривиальная антиотладка. Ограничения - 30 дней демо-срока.
    По нажатию на кнопке "Регистрация" (proc_addr == 0059DF38) в одноименном окне ничего особого не происходит - введенный ключ просто копируется в переменную по нестатическому адресу.
    Как вызывается процедура проверки ключа разбираться было влом - на тот кусок кода нет прямых ссылок. Тут нужно поставить бряк по адресу 0059F736. Мы увидим вызов процедуры (proc_addr == 004041A0), возвращающей длину строки, в данном случае длину ключа. Длина должна быть равна 27 (1Bh), посему слудующий JNZ следует (?) заNOPить, чтоб надуть проверку.
    Чуть ниже по тексту (конкретно, по адресу 0059F74D) идет вызов процедуры регистрации (?) (proc_addr == 00594550). Процедура должна возвратить 1-цу в регистре AL, если код верный. Так как данная процедура достаточно объемная, мне пока не удалось установить проводит ли она регистрацию или просто проверяет валидность ключа. Я, все же, склоняюсь к первому варианту, так как среди вызываемых ей подпрограмм есть такие, которые пишут что-то в реестр ("\Software\CLASSES\CLSID\{5F0AD35A-C0AE-4DC8-950C-C337E764C466}"). Собственно, помочь разобраться с этой процедурой и есть мой крик о помощи.
    После отработки этой "процедуры регистрации", проверяется возвращенное ей значение и выводится соответствующий MessageBox.

    Это пока вся инфа, что мне удалось выудить из проги.

    Вообщем, уверен в компитентности наших крякеров и надеюсь на помощь. Всем откликнувшимся заранее большое спасибо.
    Программу можно скачать на страничке http://twister.orgfree.com/other - архив называется hotel.rar (3 157 084 байт).
     
  2. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Файл не качается :dntknw:
    upd.
    Уже качается.
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Twister
    Кажись, проверка выполняется здесь:
    Код (Text):
    1. CODE:0065560F                 mov     eax, ds:pFTDM
    2. CODE:00655614                 mov     eax, [eax]
    3. CODE:00655616                 mov     eax, [eax+0FCh] ; AVLockGold:TAVLockGold
    4. CODE:0065561C                 mov     dx, 4D2h
    5. CODE:00655620                 call    sub_5919A8
    6. CODE:00655625                 mov     eax, ds:pFTDM
    7. CODE:0065562A                 mov     eax, [eax]
    8. CODE:0065562C                 xor     edx, edx
    9. CODE:0065562E                 call    sub_59F510
    10. CODE:00655633                 test    al, al
    11. CODE:00655635                 jnz     short loc_655645
    12. CODE:00655637                 mov     eax, ds:pApplication
    13. CODE:0065563C                 mov     eax, [eax]
    14. CODE:0065563E                 call    TApplication@Terminate
    15. CODE:00655643                 jmp     short loc_65569B
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Twister
    Вот тебе материал для анализа, твоя процедура (594550) похоже действительно проверяет валидность ключей, введенных в поле Memo:
    Код (Text):
    1. CODE:0059F510 sub_59F510      proc near
    2. CODE:0059F510                 push    ebp
    3. CODE:0059F511                 mov     ebp, esp
    4. CODE:0059F513                 add     esp, 0FFFFFFD8h
    5. CODE:0059F516                 push    ebx
    6. CODE:0059F517                 push    esi
    7. CODE:0059F518                 push    edi
    8. CODE:0059F519                 xor     ecx, ecx
    9. CODE:0059F51B                 mov     [ebp+tmp3], ecx
    10. CODE:0059F51E                 mov     [ebp+s1], ecx
    11. CODE:0059F521                 mov     [ebp+tmp1], ecx
    12. CODE:0059F524                 mov     [ebp+tmp2], ecx
    13. CODE:0059F527                 mov     [ebp+line], ecx
    14. CODE:0059F52A                 mov     ebx, edx
    15. CODE:0059F52C                 xor     eax, eax
    16. CODE:0059F52E                 push    ebp
    17. CODE:0059F52F                 push    offset loc_59F82A
    18. CODE:0059F534                 push    dword ptr fs:[eax]
    19. CODE:0059F537                 mov     fs:[eax], esp
    20. CODE:0059F53A                 mov     [ebp+res], 0
    21. CODE:0059F53E                 mov     eax, ds:FTDM
    22. CODE:0059F543                 mov     eax, [eax+0FCh] ; AVLockGold
    23. CODE:0059F549                 mov     [ebp+lock1], eax
    24. CODE:0059F54C                 mov     eax, [ebp+lock1]
    25. CODE:0059F54F                 call    sub_5928C0
    26. CODE:0059F554                 mov     eax, [ebp+lock1]
    27. CODE:0059F557                 cmp     byte ptr [eax+0D7h], 0
    28. CODE:0059F55E                 jz      short loc_59F568
    29. CODE:0059F560                 mov     eax, [ebp+lock1]
    30. CODE:0059F563                 call    sub_591D50
    31. CODE:0059F568 loc_59F568:
    32. CODE:0059F568                 mov     eax, [ebp+lock1]
    33. CODE:0059F56B                 cmp     byte ptr [eax+0DCh], 0
    34. CODE:0059F572                 jz      short loc_59F57C
    35. CODE:0059F574                 mov     eax, [ebp+lock1]
    36. CODE:0059F577                 call    sub_593C24
    37. CODE:0059F57C loc_59F57C:
    38. CODE:0059F57C                 mov     eax, [ebp+lock1]
    39. CODE:0059F57F                 cmp     byte ptr [eax+0DDh], 0
    40. CODE:0059F586                 jnz     short loc_59F5B0
    41. CODE:0059F588                 mov     eax, [ebp+lock1]
    42. CODE:0059F58B                 cmp     byte ptr [eax+0DBh], 0
    43. CODE:0059F592                 jnz     short loc_59F5AC
    44. CODE:0059F594                 mov     eax, [ebp+lock1]
    45. CODE:0059F597                 cmp     byte ptr [eax+0DCh], 0
    46. CODE:0059F59E                 jz      short loc_59F5B0
    47. CODE:0059F5A0                 mov     eax, [ebp+lock1]
    48. CODE:0059F5A3                 cmp     byte ptr [eax+0DAh], 0
    49. CODE:0059F5AA                 jnz     short loc_59F5B0
    50. CODE:0059F5AC loc_59F5AC:
    51. CODE:0059F5AC                 mov     [ebp+res], 1
    52. CODE:0059F5B0 loc_59F5B0:
    53. CODE:0059F5B0                 mov     al, [ebp+res]
    54. CODE:0059F5B3                 xor     al, 1
    55. CODE:0059F5B5                 or      bl, al
    56. CODE:0059F5B7                 jz      loc_59F807
    57. CODE:0059F5BD                 xor     ecx, ecx
    58. CODE:0059F5BF                 mov     dl, 1
    59. CODE:0059F5C1                 mov     eax, clTRegistrationForm
    60. CODE:0059F5C6                 call    TCustomForm@Create
    61. CODE:0059F5CB                 mov     [ebp+registrationForm], eax
    62. CODE:0059F5CE                 xor     eax, eax
    63. CODE:0059F5D0                 push    ebp
    64. CODE:0059F5D1                 push    offset loc_59F7EE
    65. CODE:0059F5D6                 push    dword ptr fs:[eax]
    66. CODE:0059F5D9                 mov     fs:[eax], esp
    67. CODE:0059F5DC                 mov     eax, [ebp+lock1]
    68. CODE:0059F5DF                 mov     edx, [eax+104h]
    69. CODE:0059F5E5                 mov     eax, [ebp+registrationForm]
    70. CODE:0059F5E8                 mov     eax, [eax+304h] ; EdlCode
    71. CODE:0059F5EE                 call    TControl@SetText
    72. CODE:0059F5F3                 mov     eax, [ebp+lock1]
    73. CODE:0059F5F6                 mov     dl, [eax+0DAh]
    74. CODE:0059F5FC                 xor     dl, 1
    75. CODE:0059F5FF                 mov     eax, [ebp+registrationForm]
    76. CODE:0059F602                 mov     eax, [eax+328h] ; btnOk
    77. CODE:0059F608                 mov     ecx, [eax]
    78. CODE:0059F60A                 call    dword ptr [ecx+5Ch] ; SetEnabled
    79. CODE:0059F60D                 mov     eax, [ebp+lock1]
    80. CODE:0059F610                 cmp     byte ptr [eax+0DAh], 0
    81. CODE:0059F617                 jz      short loc_59F631
    82. CODE:0059F619                 mov     eax, [ebp+registrationForm]
    83. CODE:0059F61C                 mov     eax, [eax+324h] ; Lexpire
    84. CODE:0059F622                 mov     edx, offset aXUUcarUIxas ; Истек срок ознакомления
    85. CODE:0059F627                 call    TControl@SetText
    86. CODE:0059F62C                 jmp     loc_59F6B7
    87. CODE:0059F631 loc_59F631:
    88. CODE:0059F631                 mov     eax, [ebp+lock1]
    89. CODE:0059F634                 cmp     byte ptr [eax+0DBh], 0
    90. CODE:0059F63B                 jz      short loc_59F652
    91. CODE:0059F63D                 mov     eax, [ebp+registrationForm]
    92. CODE:0059F640                 mov     eax, [eax+324h]
    93. CODE:0059F646                 mov     edx, offset aSiucxasxCrXusSUtrau ; ~ _риложение зарегистрировано ~
    94. CODE:0059F64B                 call    TControl@SetText
    95. CODE:0059F650                 jmp     short loc_59F6B7
    96. CODE:0059F652 loc_59F652:                             ; ~ Tегодн',0FFh,'
    97. CODE:0059F652                 push    offset aXuufa
    98. CODE:0059F657                 call    Now
    99. CODE:0059F65C                 mov     eax, [ebp+lock1]
    100. CODE:0059F65F                 fsub    qword ptr [eax+28h]
    101. CODE:0059F662                 fadd    flt_59F89C
    102. CODE:0059F668                 call    @TRUNC
    103. CODE:0059F66D                 push    edx
    104. CODE:0059F66E                 push    eax
    105. CODE:0059F66F                 lea     eax, [ebp+tmp1]
    106. CODE:0059F672                 call    IntToStr1       ; Int64
    107. CODE:0059F677                 push    [ebp+tmp1]
    108. CODE:0059F67A                 push    offset aSFxa    ; -й день
    109. CODE:0059F67F                 lea     edx, [ebp+tmp2]
    110. CODE:0059F682                 mov     eax, [ebp+lock1]
    111. CODE:0059F685                 movzx   eax, word ptr [eax+0D4h]
    112. CODE:0059F68C                 call    IntToStr2       ; Integer
    113. CODE:0059F691                 push    [ebp+tmp2]
    114. CODE:0059F694                 push    offset aFa_UcarUSXiAuuuQxSufr ;  дн. ознакомительного периода ~
    115. CODE:0059F699                 lea     eax, [ebp+s1]
    116. CODE:0059F69C                 mov     edx, 5
    117. CODE:0059F6A1                 call    @LStrCatN
    118. CODE:0059F6A6                 mov     edx, [ebp+s1]
    119. CODE:0059F6A9                 mov     eax, [ebp+registrationForm]
    120. CODE:0059F6AC                 mov     eax, [eax+324h] ; Lexpire
    121. CODE:0059F6B2                 call    TControl@SetText
    122. CODE:0059F6B7 loc_59F6B7:
    123. CODE:0059F6B7                 mov     eax, [ebp+registrationForm]
    124. CODE:0059F6BA                 mov     edx, [eax]
    125. CODE:0059F6BC                 call    dword ptr [edx+0D8h] ; ShowModal
    126. CODE:0059F6C2                 mov     eax, [ebp+registrationForm]
    127. CODE:0059F6C5                 cmp     dword ptr [eax+234h], 6 ; ModalResult
    128. CODE:0059F6CC                 jnz     loc_59F7C8
    129. CODE:0059F6D2                 mov     eax, ds:FTDM
    130. CODE:0059F6D7                 mov     eax, [eax+0FCh]
    131. CODE:0059F6DD                 mov     [ebp+lock2], eax
    132. CODE:0059F6E0                 mov     [ebp+n1], 0
    133. CODE:0059F6E6                 mov     eax, [ebp+registrationForm]
    134. CODE:0059F6E9                 mov     eax, [eax+320h] ; Memo
    135. CODE:0059F6EF                 mov     eax, [eax+208h] ; Lines
    136. CODE:0059F6F5                 mov     edx, [eax]
    137. CODE:0059F6F7                 call    dword ptr [edx+14h] ; GetCount
    138. CODE:0059F6FA                 mov     ebx, eax
    139. CODE:0059F6FC                 test    bx, bx
    140. CODE:0059F6FF                 jb      short loc_59F76A
    141. CODE:0059F701                 inc     ebx
    142. CODE:0059F702                 xor     esi, esi
    143. CODE:0059F704 loc_59F704:
    144. CODE:0059F704                 lea     ecx, [ebp+tmp3]
    145. CODE:0059F707                 movzx   edx, si
    146. CODE:0059F70A                 mov     eax, [ebp+registrationForm]
    147. CODE:0059F70D                 mov     eax, [eax+320h] ; Memo
    148. CODE:0059F713                 mov     eax, [eax+208h] ; Lines
    149. CODE:0059F719                 mov     edi, [eax]
    150. CODE:0059F71B                 call    dword ptr [edi+0Ch] ; Get
    151. CODE:0059F71E                 mov     eax, [ebp+tmp3]
    152. CODE:0059F721                 lea     edx, [ebp+line]
    153. CODE:0059F724                 call    Trim
    154. CODE:0059F729                 mov     eax, [ebp+line]
    155. CODE:0059F72C                 call    @LStrLen
    156. CODE:0059F731                 cmp     eax, 17h
    157. CODE:0059F734                 jz      short loc_59F743
    158. CODE:0059F736                 mov     eax, [ebp+line]
    159. CODE:0059F739                 call    @LStrLen
    160. CODE:0059F73E                 cmp     eax, 1Bh
    161. CODE:0059F741                 jnz     short loc_59F764
    162. CODE:0059F743 loc_59F743:
    163. CODE:0059F743                 push    0
    164. CODE:0059F745                 xor     ecx, ecx
    165. CODE:0059F747                 mov     edx, [ebp+line]
    166. CODE:0059F74A                 mov     eax, [ebp+lock2]
    167. CODE:0059F74D                 call    sub_594550
    168. CODE:0059F752                 test    al, al
    169. CODE:0059F754                 jz      short loc_59F764
    170. CODE:0059F756                 inc     [ebp+n1]
    171. CODE:0059F75A                 cmp     [ebp+res], 0
    172. CODE:0059F75E                 jnz     short loc_59F764
    173. CODE:0059F760                 mov     [ebp+res], 1
    174. CODE:0059F764 loc_59F764:
    175. CODE:0059F764                 inc     esi
    176. CODE:0059F765                 dec     bx
    177. CODE:0059F768                 jnz     short loc_59F704
    178. CODE:0059F76A loc_59F76A:
    179. CODE:0059F76A                 cmp     [ebp+n1], 0
    180. CODE:0059F76F                 jnz     short loc_59F78B
    181. CODE:0059F771                 push    10h
    182. CODE:0059F773                 mov     ecx, offset aAsRasx ; Tнимание!
    183. CODE:0059F778                 mov     edx, offset aXqRtsiASXusRSuaaSUf ; =еправильнvй регистрационнvй код!
    184. CODE:0059F77D                 mov     eax, ds:pApplication
    185. CODE:0059F782                 mov     eax, [eax]
    186. CODE:0059F784                 call    TApplication@MessageBox
    187. CODE:0059F789                 jmp     short loc_59F7A3
    188. CODE:0059F78B loc_59F78B:
    189. CODE:0059F78B                 push    40h
    190. CODE:0059F78D                 mov     ecx, offset aUcfRti ; _оздравл',0FFh,'_!
    191. CODE:0059F792                 mov     edx, offset aXusRSTQuiaxarQxAu ; _егистраци',0FFh,' вvполнена успешно!
    192. CODE:0059F797                 mov     eax, ds:pApplication
    193. CODE:0059F79C                 mov     eax, [eax]
    194. CODE:0059F79E                 call    TApplication@MessageBox
    195. CODE:0059F7A3 loc_59F7A3:
    196. CODE:0059F7A3                 cmp     [ebp+res], 0
    197. CODE:0059F7A7                 jz      short loc_59F7B5
    198. CODE:0059F7A9                 mov     eax, [ebp+lock2]
    199. CODE:0059F7AC                 cmp     byte ptr [eax+0DAh], 0
    200. CODE:0059F7B3                 jz      short loc_59F7B9
    201. CODE:0059F7B5 loc_59F7B5:
    202. CODE:0059F7B5                 xor     eax, eax
    203. CODE:0059F7B7                 jmp     short loc_59F7BB
    204. CODE:0059F7B9 loc_59F7B9:
    205. CODE:0059F7B9                 mov     al, 1
    206. CODE:0059F7BB loc_59F7BB:
    207. CODE:0059F7BB                 mov     [ebp+res], al
    208. CODE:0059F7BE                 mov     eax, [ebp+lock2]
    209. CODE:0059F7C1                 call    sub_5928C0
    210. CODE:0059F7C6                 jmp     short loc_59F7D8
    211. CODE:0059F7C8 loc_59F7C8:
    212. CODE:0059F7C8                 mov     eax, [ebp+registrationForm]
    213. CODE:0059F7CB                 cmp     dword ptr [eax+234h], 1 ; ModalResult
    214. CODE:0059F7D2                 jnz     short loc_59F7D8
    215. CODE:0059F7D4                 mov     [ebp+res], 1
    216. CODE:0059F7D8 loc_59F7D8:
    217. CODE:0059F7D8                 xor     eax, eax
    218. CODE:0059F7DA                 pop     edx
    219. CODE:0059F7DB                 pop     ecx
    220. CODE:0059F7DC                 pop     ecx
    221. CODE:0059F7DD                 mov     fs:[eax], edx
    222. CODE:0059F7E0                 push    offset loc_59F7F5
    223. CODE:0059F7E5 loc_59F7E5:
    224. CODE:0059F7E5                 mov     eax, [ebp+registrationForm]
    225. CODE:0059F7E8                 call    TObject@Free
    226. CODE:0059F7ED                 retn
    227. CODE:0059F7EE loc_59F7EE:
    228. CODE:0059F7EE                 jmp     loc_40383C
    229. CODE:0059F7F3                 jmp     short loc_59F7E5
    230. CODE:0059F7F5 loc_59F7F5:
    231. CODE:0059F7F5                 mov     dl, 1
    232. CODE:0059F7F7                 mov     eax, [ebp-14h]
    233. CODE:0059F7FA                 call    sub_595854
    234. CODE:0059F7FF                 mov     eax, [ebp-14h]
    235. CODE:0059F802                 mov     edx, [eax]
    236. CODE:0059F804                 call    dword ptr [edx+44h]
    237. CODE:0059F807 loc_59F807:
    238. CODE:0059F807                 xor     eax, eax
    239. CODE:0059F809                 pop     edx
    240. CODE:0059F80A                 pop     ecx
    241. CODE:0059F80B                 pop     ecx
    242. CODE:0059F80C                 mov     fs:[eax], edx
    243. CODE:0059F80F                 push    offset loc_59F831
    244. CODE:0059F814 loc_59F814:
    245. CODE:0059F814                 lea     eax, [ebp+tmp3]
    246. CODE:0059F817                 mov     edx, 4
    247. CODE:0059F81C                 call    @LStrArrayClr
    248. CODE:0059F821                 lea     eax, [ebp+line]
    249. CODE:0059F824                 call    @LStrClr
    250. CODE:0059F829                 retn
    251. CODE:0059F82A loc_59F82A:
    252. CODE:0059F82A                 jmp     loc_40383C
    253. CODE:0059F82F                 jmp     short loc_59F814
    254. CODE:0059F831 loc_59F831:
    255. CODE:0059F831                 mov     al, [ebp+res]
    256. CODE:0059F834                 pop     edi
    257. CODE:0059F835                 pop     esi
    258. CODE:0059F836                 pop     ebx
    259. CODE:0059F837                 mov     esp, ebp
    260. CODE:0059F839                 pop     ebp
    261. CODE:0059F83A                 retn
    262. CODE:0059F83A sub_59F510      endp
    ЗЫ
    Я не совсем только понял - тебе нужно научиться ключ генерить или снять проверку?
     
  5. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    crypto
    Это место - проверка и вызов формы регистрации (sub_59F510) при старте программы . Если пользователь давит отмену, то происходит выход (CODE:0065563E call TApplication@Terminate). Заглянув в sub_59F510, можно найти место, где именно вызывается форма: CODE:0059F6BC call dword ptr [edx+0D8h]. Но от этого толку мало - запретить появление этого надоедливого окна не проблема. А вот ниже по тексту идет вызов той самой процедуры, о которой я говорил в первом посте (именно в ней вся соль): CODE:0059F74D call sub_594550.

    Вчера обнаружил еще один интересный момент: в ключе реестра "\Software\CLASSES\CLSID\{5F0AD35A-C0AE-4DC8-950C-C337E764C466}" лежит параметр (называется "0"), в котором хранится ключ, подходящий для регистрации (у меня E9PLWG-GL2NGP-57UZMN-RDC8HU). При вводе этого ключа программа говорит, что регистрация прошла успешно, но триал не снимается. При удалении этого значения из реестра или его изменении, прога говорит, что триальный период закончился. Т.е., скорее всего, этот ключ является чем-то вроде "ключа на 30 дней". Хотя я могу и ошибаться...

    Спасибо. Я вижу это IDA. Мне для анализа Дельфовых прог приходится юзать DeDE. Где-то видел инфу, как заставить иду распозновать VCL-процедуры, но не могу найти. Поделишься?

    Ко времени вызова этой процедуры в Мемо уже ни чего нет. Ключ лежит, как я уже говорил, где-то далеко, по нестатическому адресу.

    Ну, кейген, в данном случае - это роскошь. Я краем глаза видел что там творится - из ключа убираются дефисы, из полученной строки генерится какая-то хрень аналогичной длины. Эта хрень разбивается на части. С частями тоже что-то происходит, выделяются числа какие-то... Вообщем, без травы не обойтись. Так что тут бы просто прогу отучить от триала...
     
  6. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Twister
    Могу тебе вечерком скинуть все относящиеся к сабжу тексты с распознанными VCL-процедурами.
    ЗЫ
    Чтобы снять проверку, попробуй:
    1.
    Код (Text):
    1. CODE:0059F53A                 mov     [ebp+res], 0
    заменить на
    Код (Text):
    1. CODE:0059F53A                 mov     [ebp+res], 1
    2.
    Код (Text):
    1. CODE:0059F5B7                 jz      loc_59F807
    заменить на
    Код (Text):
    1. CODE:0059F5B7                 jmp     loc_59F807
     
  7. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Лучше скинь в ЛС, плиз, инфу о том, как я могу это сделать сам. ;)
    Сначала испробую свой вариант, потом, если не прокатит, буду мучать твой...
     
  8. gazlan

    gazlan Member

    Публикаций:
    0
    Регистрация:
    22 май 2005
    Сообщения:
    414
    1. Загрузить дополнительные сигнатуры
    2. Использовать пакет DeIDA для экспорта из DeDe
    Все есть в разделе инструментов на этом сайте.
     
  9. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Twister
    Еще здесь можно покумекать :)
    Код (Text):
    1. CODE:00594A0B                 mov     byte ptr [ebx+50h], 30 ; TrialDays
     
  10. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    crypto

    Итак. Подведем итоги.

    Твой вариант:
    Заменить mov [ebp+res], 0 по адресу 0059F53A на mov [ebp+res], 1
    Заменить JZ по адресу 0059F5B7 на JMP

    При этом полность блокируется вызов окна регистрации. Так же в заголовке главного окна остается надпись "незарегистрировано"

    Мой вариант:
    Занопить JZ по адресу 0059F63B
    Заменить JZ на JMP по адресу 0059F617
    Заменить call по адресу 0065562E на mov al, 01

    При этом окно регистрации не выскакивает при старте проги, а если вызвать его из главного меню, то увидим радующую глаз надпись "зарегистрировано". В заголовке главного окна по-прежнему красуется надпись "незарегистрировано". Осталось найти, как это исправить.

    На изменения даты и времени оба варианта реагируют так, как и должно быть - т.е. никак. ;)

    Так что как только уберу надпись из заголовка, можно будет считать задачу полностью решенной. Тут мне помогли бы распознанные ИДой VCL-процедуры. ;)

    Короче говоря - большое спасибо. Жду твоего сообщения в личку...

    gazlan
    Спасибо, буду пробовать...
     
  11. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    1. В инструментах нашел только для D2005.
    2. Вообще не нашел.

    Ткните носом...
    А заодно скажите в двух словах, как все это добро заюзать.
     
  12. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Twister
    Вот тут перехлд исправь --
    Код (Text):
    1. 0064B3FB   751C                   jnz     0064B419
    на
    Код (Text):
    1. 0064B3FB   741C                   jz     0064B419
    P.S. Это в событии FormShow главной формы TMainForm
     
  13. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Twister
    GMax
    В коде есть еще крючок:
    Код (Text):
    1. CODE:005A0FAA                 cmp     byte ptr [eax+0DBh], 0
    2. CODE:005A0FB1                 jz      loc_5A1E30
    Поэтому jz надо забить нопами.
     
  14. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    GMax
    crypto
    Спасибо.