Сейчас на форуме: Magister Yoda, vasilevradislav (+3 невидимых)

 eXeL@B —› Крэки, обсуждения —› водяной знак
Посл.ответ Сообщение


Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 29 мая 2015 07:23 · Поправил: AKAB
· Личное сообщение · #1

проблема не могу убрать водяной знак

программа:PT Photo Editor
http://rghost.net/7SWSMJrZH

вот мой не доработанный crack
http://rghost.net/8nr8sdVF4
pass=akab123

и вот tutorial показываю подозреваемый код
http://rghost.net/67hg6XXfc




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 29 мая 2015 17:43 · Поправил: Kindly
· Личное сообщение · #2

PECTRL::CPhotoEditorApp::LoadShuiYin
расшифровывает и создает наг .tmp с рандомным именем в папке temp, которая с конфигами проги.

-----
Array[Login..Logout] of Life




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 29 мая 2015 18:05 · Поправил: SReg
· Личное сообщение · #3

Да там по рса зашифрован файл si.dat что в папке с прогой

Добавлено спустя 0 минут
валидный кей есть?

AKAB пишет:
И что теперь, без ключи прога не взломается ?!

возможно ты вываливаешься на каком то исключении в блоке try-ecxept, что появляетя водяной знак...
зы. хотя может и аес, я особо не вникал. 007BB0E7 PUSH 6610 ; CALG_AES_256




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 29 мая 2015 18:15
· Личное сообщение · #4

И что теперь, без ключи прога не взломается ?!



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 29 мая 2015 19:17
· Личное сообщение · #5

Halt! Давайте с самого начала - у нас имеется две переменных под регистрацию. Это очевидно отсюда:
Code:
  1. 007B8350  /$  56            PUSH ESI
  2. 007B8351  |.  8BF1          MOV ESI,ECX
  3. 007B8353  |.  83BE 20030000 CMP DWORD PTR DS:[ESI+320],0 //reg_номер 1
  4. 007B835A  |.  75 38         JNE SHORT 007B8394
  5. 007B835C  |.  83BE 7C050000 CMP DWORD PTR DS:[ESI+57C],0 //reg_номер 2
  6. 007B8363  |.  75 2F         JNE SHORT 007B8394
  7. 007B8365  |.  8B86 70050000 MOV EAX,DWORD PTR DS:[ESI+570] //ptr to WinAPI IsDebuggerPresent... 
  8. 007B836B  |.  85C0          TEST EAX,EAX
  9. 007B836D  |.  74 06         JZ SHORT 007B8375
  10. 007B836F  |.  FFD0          CALL EAX //CALL IsDebuggerPresent
  11. 007B8371  |.  85C0          TEST EAX,EAX
  12. 007B8373  |.  75 1F         JNZ SHORT 007B8394 //если дебагер пресент то окно не покажется! лол!
  13. 007B8375  |>  8BCE          MOV ECX,ESI
  14. 007B8377  |.  E8 24000000   CALL ?ShowKaiDlg@CPhotoEditorApp@PECTRL@@QAEHXZ //предложения зарегать
  15. 007B837C  |.  83F8 01       CMP EAX,1
  16. 007B837F  |.  75 13         JNE SHORT 007B8394
  17. 007B8381  |.  8B46 30       MOV EAX,DWORD PTR DS:[ESI+30]
  18. 007B8384  |.  6A 00         PUSH 0                                                           ; /lParam = 0
  19. 007B8386  |.  6A 00         PUSH 0                                                           ; |wParam = 0
  20. 007B8388  |.  68 66040000   PUSH 466                                                         ; |Msg = WM_USER+102.
  21. 007B838D  |.  50            PUSH EAX                                                         ; |ThreadID
  22. 007B838E  |.  FF15 DCE47C00 CALL DWORD PTR DS:[<&USER32.PostThreadMessageW>]                 ; \USER32.PostThreadMessageW
  23. 007B8394  |>  5E            POP ESI
  24. 007B8395  \.  C3            RETN


Переменные проверяются тут:
Code:
  1. 00433003  |.  391D F0D14700 CMP DWORD PTR DS:[47D1F0],EBX
  2.  
  3.  
  4. 00404A9F  |.  833D 4CD44700 CMP DWORD PTR DS:[47D44C],0
  5.  
  6.  
  7. 00404455  |.  833D 4CD44700 CMP DWORD PTR DS:[47D44C],0


У меня вопрос возник: как правильно отловить, когда програ считывает ключик с textbox? Или посимвольно при EDITCHANGE передаётся?




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 29 мая 2015 19:24 · Поправил: Kindly
· Личное сообщение · #6

интересно в чем "соль" поиска серийника, вроде считается md5 хеш строки одной, потом нужно прибавить что-то типа 20000000 (вместо 6 последних нулей быть может не рандом), далее в хеш в определенном порядке вставить одни из предлагаемых наборов букв, вот только какие это буквы - до этого не дошел
вставте серийник типа:
2AC71CE0E4EB17EC44CBC16835757A0A20000000
и брякнитесь вот тут
00436E58 83FA 14 CMP EDX,14

0044A0A0 |> в этом цикле серийник сравнивается с хешем, предположительно, это проверка предыдущей версии. так как либо не регит, либо предлагает обновить версию программы.
имхо прога из разряда лучше не патчить

-----
Array[Login..Logout] of Life




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 29 мая 2015 19:38
· Личное сообщение · #7

SReg пишет:
ы. хотя может и аес, я особо не вникал. 007BB0E7 PUSH 6610 ; CALG_AES_256

В СМЫСЛЕ target - библиотека PECtrl.dll
Code:
  1.   if ( CryptDecrypt(hKey, 0, 1, 0, (BYTE *)v8, (DWORD *)&pdwDataLen) && (unsigned int)pdwDataLen > 4 )
  2.         {
  3.           if ( *(_DWORD *)v8 == 0x74736561 )
  4.           {...

si.dat - влияет на водянной знак?

рег_переменные 1 и 2, кстати очень до фига где проверяются



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 29 мая 2015 20:15 · Поправил: SReg
· Личное сообщение · #8

ELF_7719116 пишет:
si.dat - влияет на водянной знак?

факт, что там что то должно расшифроваться..
если изменишь флаги в ольке чтоб дотопать до декрипта етого файла, то декриптонется "мусор", да...

ELF_7719116 пишет:
*(_DWORD *)v8 == 0x74736561

строка похоже должна быть в начале судя по этим байтам "aest"

Добавлено спустя 3 минуты
ELF_7719116 пишет:
библиотека PECtrl.dll

ну да, очевидно же, да я и копал сразу с хмлки
Code:
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <settings>
  3.          <app_key>1234567890</app_key>
  4.          <product>PT Photo Editor</product>
  5.          <version>3.0</version>


а в app_key должен быть хешь наверное



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 29 мая 2015 20:50
· Личное сообщение · #9

SReg пишет:
если изменишь флаги в ольке чтоб дотопать до декрипта етого файла, то декриптонется "мусор", да...

Мож si.dat == PE x86? Или не? Там LoadLibrary вроде мелькала (программы под рукой нет, в данынй момент)



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 29 мая 2015 21:00 · Поправил: SReg
· Личное сообщение · #10

ELF_7719116
фиг его, капнул есче чутка... там в <app_key> должен быть кей 0x14 байт.
вначале считается хешь от 0х13 байт "PT Photo Editor ", с него и должен начинатся app_key, наверное? т.к. тут(0044A0A0) сравнение в цикле хеша.. т.о. app_key (только пока вангую) == D0DB170AA871FA212529D6B8623D0CF3XXXXXXXX




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 29 мая 2015 21:36 · Поправил: Kindly
· Личное сообщение · #11

004247C0 |. 84C0 TEST AL,AL ------ > if al = 1disabled_nag

упс. цветовые профили не сохраняет

-----
Array[Login..Logout] of Life





Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 30 мая 2015 05:15 · Поправил: AKAB
· Личное сообщение · #12

Kindly пишет:
004247C0 |. 84C0 TEST AL,AL ------ > if al = 1disabled_nag

упс. цветовые профили не сохраняет

я уже показал этот адрес в своем tutorial (в конце)
---------------
тоже самое здесь

00446D74 |. 85ED TEST EBP,EBP
00446D76 0F84 B7000000 JE 00446E33 ; PTPhotoE.00446E33
00446D7C |. 83BC24 9C0000>CMP DWORD PTR SS:[ESP+0x9C],0x0
00446D84 0F86 A9000000 JBE 00446E33 ; PTPhotoE.00446E33
00446D8A |. 68 A8514600 PUSH 0x4651A8 ; /FileName = "advapi32.dll"
00446D8F |. FF15 A4504500 CALL DWORD PTR DS:[0x4550A4] ; \LoadLibraryW
00446D95 |. 8B1D 9C504500 MOV EBX,DWORD PTR DS:[0x45509C] ; kernel32.GetProcAddress
00446D9B |. 8BF8 MOV EDI,EAX
00446D9D |. 68 C4514600 PUSH 0x4651C4 ; /ProcNameOrOrdinal = "MD5Init"
00446DA2 |. 57 PUSH EDI ; |hModule
00446DA3 |. FFD3 CALL EBX ; \GetProcAddress
00446DA5 |. 68 CC514600 PUSH 0x4651CC ; /ProcNameOrOrdinal = "MD5Update"
00446DAA |. 57 PUSH EDI ; |hModule
00446DAB |. 894424 24 MOV DWORD PTR SS:[ESP+0x24],EAX ; |
00446DAF |. FFD3 CALL EBX ; \GetProcAddress
00446DB1 |. 68 D8514600 PUSH 0x4651D8 ; /ProcNameOrOrdinal = "MD5Final"




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 30 мая 2015 11:25 · Поправил: Kindly
· Личное сообщение · #13

SReg пишет:
тут(0044A0A0) сравнение в цикле хеша.. т.о. app_key

тот цикл и проверки это фейковая процедура, она проверяет кей от предыдущей версии и предлагает обновить или нет.

настоящая процедура проверки серийника начинается здесь PECtrl.dll:
007B9C40
и вот этот переход
007B9EC3 |. /0F84 D0010000 JE PECtrl.007BA099
дает или нет пройти дальше.

-----
Array[Login..Logout] of Life




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 30 мая 2015 11:42
· Личное сообщение · #14

Я понимаю, Вы щас копаетесь в дебрях, но чисто для полной раскладки добавлю, что мы имеем в САМОМ НАЧАЛЕ основного ексешника. ВЫЗЫВАЕТСЯ ПРОЦЕДУРА, где предпоследний параметр равен нулю:
Code:
  1. 00432CD5  |.  68 DE070000   PUSH 7DE //2014 Г. очевидно
  2. 00432CDA  |.  33DB          XOR EBX,EBX
  3. 00432CDC  |.  53            PUSH EBX // REG_VALUE ПО УМОЛЧАНИЮ == 0
  4. 00432CDD  |.  68 24384600   PUSH OFFSET 00463824                                                                 ; UNICODE "photo_editor"
  5. 00432CE2  |.  68 00000003   PUSH 3000000
  6. 00432CE7  |.  68 40384600   PUSH OFFSET 00463840                                                                 ; UNICODE "3.0"
  7. 00432CEC  |.  68 B8C64500   PUSH OFFSET 0045C6B8
  8. 00432CF1  |.  68 48384600   PUSH OFFSET 00463848                                                                 ; UNICODE "PT Photo Editor"
  9. 00432CF6  |.  B9 D0CE4700   MOV ECX,OFFSET 0047CED0
  10. 00432CFB  |.  68 68384600   PUSH OFFSET 00463868                                                                 ; UNICODE "PHOTO-TOOLBOX.COM"
  11. 00432D00  |.  894C24 44     MOV DWORD PTR SS:[ESP+44],ECX
  12. 00432D04  |.  FF15 1C554500 CALL DWORD PTR DS:[<&PECtrl.??0CPhotoEditorApp@PECTRL@@QAE@PB_W000K0HH@Z>]

Этот ноль ложится в reg_value уже в дллке:
Code:
  1. 007B6267  |.  8B45 20       MOV EAX,DWORD PTR SS:[EBP+20] // всплывает ноль
  2. 007B626A  |.  8B4D 24       MOV ECX,DWORD PTR SS:[EBP+24] //год 2014
  3. 007B626D  |.  898B 24030000 MOV DWORD PTR DS:[EBX+324],ECX 
  4. 007B6273  |.  8D8B 28030000 LEA ECX,[EBX+328]
  5. 007B6279  |.  8983 20030000 MOV DWORD PTR DS:[EBX+320],EAX //set default reg NULL


КАСАЕМО РОЛИ ФАЙЛА si.dat, мои предположения потдвердились, что это dll'ка:
Code:
  1. 007B9FE0  |.  8B5424 10     MOV EDX,DWORD PTR SS:[ESP+10]                                                        ; UNICODE "C:\Documents and Settings\All Users\Documents\PT Photo Editor\temp\si.tmp"
  2. 007B9FE4  |.  52            PUSH EDX                                                                             ; /FileName
  3. 007B9FE5  |.  FF15 B8E07C00 CALL DWORD PTR DS:[<&KERNEL32.LoadLibraryW>]                                         ; \KERNEL32.LoadLibraryW
  4. 007B9FEB  |.  8983 7C050000 MOV DWORD PTR DS:[EBX+57C],EAX
  5. 007B9FF1  |.  85C0          TEST EAX,EAX
  6. 007B9FF3  |.  74 36         JZ SHORT 007BA02B
  7. 007B9FF5  |.  8B35 D0E07C00 MOV ESI,DWORD PTR DS:[<&KERNEL32.GetProcAddress>]
  8. 007B9FFB  |.  6A 01         PUSH 1                                                                               ; /Procname = #1
  9. 007B9FFD  |.  50            PUSH EAX                                                                             ; |hModule
  10. 007B9FFE  |.  FFD6          CALL ESI                                                                             ; \KERNEL32.GetProcAddress
  11. 007BA000  |.  8983 74050000 MOV DWORD PTR DS:[EBX+574],EAX
  12. 007BA006  |.  8B83 7C050000 MOV EAX,DWORD PTR DS:[EBX+57C]
  13. 007BA00C  |.  6A 02         PUSH 2
  14. 007BA00E  |.  50            PUSH EAX
  15. 007BA00F  |.  FFD6          CALL ESI
  16. 007BA011  |.  83BB 74050000 CMP DWORD PTR DS:[EBX+574],0
  17. 007BA018  |.  8983 78050000 MOV DWORD PTR DS:[EBX+578],EAX
  18. 007BA01E  |.  74 04         JE SHORT 007BA024

т.е.
Code:
  1. sub_7A7BA0((int)&v32);
  2.     if ( *(_DWORD *)&v22 )
  3.     {
  4.       v17 = LoadLibraryW(Filename);
  5.       *(_DWORD *)(v2 + 0x57C) = v17;
  6.       if ( v17 )
  7.       {
  8.         *(_DWORD *)(v2 + 1396) = GetProcAddress(v17, (LPCSTR)1);
  9.         v18 = GetProcAddress(*(HMODULE *)(v2 + 0x57C), (LPCSTR)2);
  10.         v19 = *(_DWORD *)(v2 + 1396) == 0;
  11.         *(_DWORD *)(v2 + 1400) = v18;
  12.         if ( v19 || !v18 )
  13.           PECTRL::CPhotoEditorApp::ReleaseSI(v2);

имеем hmodule и два ординала:
Code:
  1. [EBX+57C]         0047D44C - HMODULE si.dat
  2. [EBX+574]         0047D444 - Ordinal #1 si.dat
  3. [EBX+578]         0047D448 - Ordinal #2 si.dat


касаемо:
004247BB |. E8 E01A0000 CALL 004262A0 - там ведь MD5 хэши сравниваются, в конце memcmp стоит. AL-результирующий оттуда.
а дальше, если цветовые профили не сохраняет - идёт ip.dll уже




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 30 мая 2015 12:06 · Поправил: Kindly
· Личное сообщение · #15

ELF_7719116 пишет:
предположения потдвердились, что это dll'ка:

выходит, что без валидного серийника не расшифровать, а стало быть для решения вопросов профилей нужно на ip.dll переключаться.

AKAB пишет:
я уже показал этот адрес в своем tutorial

там разные параметры передаются в ip.dll, поэтому и сохраняет без указанного профиля

-----
Array[Login..Logout] of Life




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 30 мая 2015 14:31
· Личное сообщение · #16

Kindly пишет:
выходит, что без валидного серийника не расшифровать

я только не наблюдаю, где экспортные функи по ординалам используются - hadware молчат. ИЛИ что-то мешает, чтобы управление передалось туда ИЛИ si.dat - fake!

Обощаю
Если тупо патчить (только для исследования), то:
1. Переменные HMODULE (косвенно, #1 и #2) и reg_2 - 0047D44C и 47D44C -> Визуально GUI без Trial
2. Сверка MD5-хэшей (004247BB) - AL = 0 - сохраняем отредактир. норм, только с вотемарком; AL - 1 = без изменения
3. (профили ip.dll?)

В ip.dll, странные вставки проскакивают (на мой взгляд):
Code:
  1. 1002204D  |.  8B55 C4       MOV EDX,DWORD PTR SS:[EBP-3C]
  2. 10022050  |.  B9 E8C50B10   MOV ECX,OFFSET ?GUID_ContainerFormatPPM@@3U_GUID@@B
  3. 10022055  |.  C645 FC 01    MOV BYTE PTR SS:[EBP-4],1
  4. 10022059  |.  E8 62C2FFFF   CALL 1001E2C0                                                                            ; [ip.1001E2C0, memcmp DWORD
  5. 1002205E  |.  85C0          TEST EAX,EAX
  6. 10022060  |.  74 7B         JZ SHORT 100220DD

где он сравнивает DWORD'ы. (EDX-вроде одинаков, ECX-везде разный). Для запутывания вставили??




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 31 мая 2015 16:45
· Личное сообщение · #17

все прога сдохла я все такие взломал её
AZMA это я AKAB
http://rghost.net/6bqtJ65QY
pass=akab123



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 31 мая 2015 19:25
· Личное сообщение · #18

AKAB ну написал бы пару строк, что и как




Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 31 мая 2015 20:22
· Личное сообщение · #19

SReg пишет:
AKAB ну написал бы пару строк, что и как

tutorial
http://rghost.net/7Gmk7vcvb
pass=akab1234

| Сообщение посчитали полезным: MakLab, hello


Ранг: 74.4 (постоянный), 76thx
Активность: 0.050.1
Статус: Участник

Создано: 31 мая 2015 23:02
· Личное сообщение · #20

Что то не работает. MD5 hash is not from original file! Please check your program version. Версия 3.0/По первой ссылке файл удален.



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

Создано: 31 мая 2015 23:29 · Поправил: dosprog
· Личное сообщение · #21

==DJ==[ZLO] пишет:
Что то не работает.


Патчер к другой версии, что была в первом посте. Находит все файлы и патчит вполне успешно.
--> Перезалил инсталляшку <--

Но сама программа глючная - не захотела работать с самого начала.
Вернее, при попытке открыть любой файл вылазит сообщение "unknown error" .
Своеобразная программка.






Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 01 июня 2015 00:33 · Поправил: AKAB
· Личное сообщение · #22

dosprog
Какой windows у вас
И ещё попробуй не с диск С переташет фото ,а с другого и тогда у вас не будет глючит
Программа глючит когда win не english а русская или арабская и .... Я же выличил её



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

Создано: 01 июня 2015 08:24 · Поправил: dosprog
· Личное сообщение · #23

AKAB,
WinXP/SP2(RU).
Файлы пытался грузить с разных дисков, одна и та же ошибка при открытии файла. (Любого, PNG,JPG etc.)
Code:
  1. 004370E8  |. FF15 78554500  CALL DWORD PTR DS:[<&PECtrl.?ShowOp>; PECtrl.?ShowOpenImageFileDialog@PECTRL@@YAHAAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@EPB_W@Z
  2. 004370EE  |. 83C4 0C        ADD ESP,0C
  3. 004370F1  |. 85C0           TEST EAX,EAX <------------EAX=1  - ERROR после диалога выбора файла.
  4. 004370F3  |. 0F85 8B000000  JNZ 00437184 <------------ прыг на показ сообщения об ошЫбке

Поэтому даже не стал глядеть, что там у неё внутри.






Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 01 июня 2015 09:17 · Поправил: AKAB
· Личное сообщение · #24

став Bp CreateFileW и переташи Файлы .
когда астановка призойдет нажемаи F9 (4 раза) дальше F8 и ты поподешь в IP.dll , дальше ctrl + F8
и смотри где же вылазит сообщение "unknown error"
оно здесь
Code:
  1. 100228CB    E8 02E00800     CALL <JMP.&metadata.?open@ImageFactory@Exiv2@@SA?AV?$auto_ptr@VImage@Exiv2@@@std@@ABV?$basic_string@DU...
  2.  

и здесь
Code:
  1. 100228CB    E8 02E00800     CALL <JMP.&metadata.?open@ImageFactory@Exiv2@@SA?AV?$auto_ptr@VImage@Exiv2@@@std@@ABV?$basic_string@DU...
  2.  

вот готовый
http://rghost.net/8BGyMByVR



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

Создано: 01 июня 2015 09:29 · Поправил: dosprog
· Личное сообщение · #25

AKAB пишет:
и смотри где же вылазит сообщение "unknown error"


Я ж написал, сообщение вылазит после фэйла при вызове диалога выбора файла.
(.004370E8 call PeCtrl.dll.?ShowOpenImageFileDialog). Ещё до его открытия.
Копаться в этой фигне - неблагодарное занятие. Надо новую версию виндовса. Или не надо нах эту программу.
Одно из двух.






Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 01 июня 2015 11:55 · Поправил: Kindly
· Личное сообщение · #26

У меня при сохранении в JPEG ошибка постоянно с вылетом на XP, при загрузке изображений без EXIF ругания и незагрузка таких изображений. Пол дня реверсил под варью думал что что-то не так патчу, а оказалось прога глючная до безобразия . На Win7x64 вроде сохраняла в JPEG - но на x64 устанавливается x64, в итоге гемор еще тот с самой прогой Посмотрел еще на предмет серийника и забил.

AKAB, у тебя пропатчена только 32-бит версия. На x64 системах ставится 64-битная версия программы и патч соответственно не подходит.

-----
Array[Login..Logout] of Life




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 01 июня 2015 17:57
· Личное сообщение · #27

AKAB пишет:
SReg пишет:
AKAB ну написал бы пару строк, что и как
tutorial
http://rghost.net/7Gmk7vcvb
pass=akab1234

где
за'nop'ить
Code:
  1. .text:004245B2                 lea     ecx, [esp+0C78h+var_BE4] //ptr to image Width & Height 
  2. .text:004245B9                 lea     eax, [esp+0C78h+var_C44]
  3. .text:004245BD                 call    sub_43D460

Подожди, бро, тогда немного хня какая-то получается!

Смотри! Совершенно очевидно что саб по адресу sub_43D460 выполняет растягивание нага по картинке в зависимости от ширины/высоты изображения которые передаются через регистр ECX. Эт очень просто проверить, если, например, вместо константы 0.800000011920929 поставить 2.0 (можно прямо в FPU-стеке):
Code:
  1. int __usercall sub_43D460<eax>(int result<eax>, int a2<ecx>)
  2. {
  3.   signed int v2; // edx@1
  4.   signed int v3; // ecx@1
  5.   float v4; // ST00_4@3
  6.  
  7.   v2 = *(_DWORD *)(a2 + 4);
  8.   v3 = *(_DWORD *)(a2 + 8);
  9.   *(float *)result = 0.0;
  10.   *(float *)(result + 4) = 0.0;
  11.   *(float *)(result + 8) = 0.0;
  12.   *(float *)(result + 12) = 0.0;
  13.   if ( v2 > 0 ) //1680, например
  14.   {
  15.     if ( v3 > 0 ) //1050, например
  16.     {
  17.       v4 = (double)v2;
  18.       *(float *)(result + 8) = 0.800000011920929 * v4;
  19.       *(float *)(result + 12) = (double)v3 * 0.5;
  20.       *(float *)result = v4 * 0.1000000014901161;
  21.       *(float *)(result + 4) = 0.0;
  22.     }
  23.   }
  24.   return result;
  25. }

на эту функу еще куча рефов есть в проге. Естественно возникает вопрос: ввиду отсуствия каких либо je/jne, как в зарегистрированной версии, прога определяет, что наг растягивать не требуется ВООБЩЕ? Теоретически конечно она до этого может и обнулить переменные image Width & Height, однако, они по ходу пьесы эти данные еше и до и после вызова sub_43D460 используются. В принципе, решение конечно рабочее - тупо занулить множиители, но выходит, корень проблемы лежут глубже.
На 2k3 SP2, к слову, всё работает.

| Сообщение посчитали полезным: AKAB
 eXeL@B —› Крэки, обсуждения —› водяной знак
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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