:: Информация ::

Pulse Reverseing Force

Програма: Bi0CiDe Official Keygenme #1
Tрудност: 5/10
Инструменти: SoftIce
Разлика при кракването:
Просто трябва да се направи кейген.За целта ни трябва алгоритама

 :: Съдържание ::

Влизаме в SoftIce.Слагаме един 'bpx hmemcpy' и натискаме бутноа 'Check'.SoftIce прекъсва в някоя функция на някои си .dll излизаме от финкциите с F12 и се връщаме обратно в кода на програмата.Това става още един път(2 пъти взема текста)единия път за USER_NAME и втория път за PASSWORD.След това натискаме пак няколко пъти F12 докато се озовем в главната процедура на програмата т.е на 40142C
АКО СТЕ НА WINDOWS 2000 или WINDOWS XP или просто не ви брейква на hmemcpy , можете да използвате GetWindowTextA
-----------------------------------------------------------------------------------------------------------------------------------------------------
             40142C      CALL      004179E
                                   
             40142C      MOV       ECX,[ESI+64]                         ;връща името
             40142C      CMP       dword ptr[ECX-08],06              ;проверява дали символите които сме въвели са поне 6        
      |-----40142C      JGE        0040144A                               ;ако е по голямо или равно прескача на адрес 0040144A
      |      40142C      PUSH      EDI                                        
      |      40142C      PUSH      0040307C                        
      |      40142C      PUSH      00403058                        
     
|      401445       JMP        00401523                            
-----------------------------------------------------------------------------------------------------------------------------------------------------
 
     |--->40144A      MOV        EDX,[ECX-08]                        ;Премества в EDX дължината на името
             40144D      XOR        EAX,EAX                                ;изпразва EAX
             40144F       TEST       EDX,EDX                               
             401451       PUSH      EBX
             401452       JLE         40145F
      
|-->401454       MOVSX   EBX,byte ptr[EAX+ECX]           ;слага в EBX стойноста  [EAX+OCX]   
      
|     401458       ADD       EDI,EBX                                 ;събира EDI , EBX (резултатут се трупа в EDI)
      
|     40145A       INC        EAX                                       ;повишава EAX с 1
      
|     40145B       CMP       EAX,EDX                                ;сравнява EAX с дължината на името
      
|----40145D       JL          401454                                  ;прескача ако е по малко
             40145F        MOV      CL,[ECX+01]                          ;Слага HEXa на втората буква от името в CL
             401462        MOV      EBX,[4021BC]                        
             401468        MOVSX  ECX,CL                                  ;от ECX остава само CL
             40146B        SUB       ECX,364D73D9                      ;от ЕCX изважда 364D73D9
             401471        LEA        EAX,[ESP+10]                        ;EAX = 63F808
             401475        IMUL      ECX,EDI                                ;Умножава HEXa на втората буква от името с сбора на HEXа му
             401478        PUSH     10
             40147A        PUSH     EAX
             40147B        PUSH     ECX
  
|--------40147C        CALL     EBX                                       ;конвертва регисъра ЕCX  в [EAX](Calculate #1 complete)
  |          40147E        ADD      ESP,0C 
  |          401481        LEA       ECX,[ESP+0C] 
  |          401485        PUSH     EAX 
  |          401486        CALL     00401762 
  |          40148B        PUSH    00403054 
  |          401490        LEA       ECX,[ESP+10] 
  |          401494        CALL     00401798 
  |          401499        MOV      EDX,[ESI+64]                        ;Премества се оказателя за името в EDX
  |          40149C        LEA       ECX,[ESP+10]                       ;Премества оказателя за генерирания до момента Serial в ECX
  |          4014A0        PUSH    10 
  |          4014A2        PUSH    ECX                                      ;Пушва се ECX
  |          4014A3        MOV     AL,[EDX+01]                         ;Премества хекса втората буква от името в AL
  |          4014A6        MOVSX EDX,AL                                  ;Премества  хекса на втората буква от името в EDX
  |          4014A9        SUB       EDX,321ABFDB                     ;Вади от EDX 321ABFDB    и записва резултата в EDX
  |          4014AF        IMUL      EDX,EDI                               ;Умножава EDX с ЕDI(Сбора на HEX-а на отделните букви)
  |          4014B2        PUSH     EDX                                     ;Пушва EDX
  |--------4014B3        CALL     EBX                                      ;конвертва регисъра ЕDX  в [EAX](Calculate #2 complete)
  |          4014B5        ADD      ESP,0C 
  |          4014B8        LEA        ECX,[ESP+0C] 
  |          4014BC        PUSH     EAX 
  |          4014BD        CALL     00401798 
  |          4014C2        PUSH     00403054 
  |          4014C7        LEA       ECX,[ESP+10] 
  |          4014CB        CALL     00401798 
  |          4014D0        MOV      EAX,[ESI+64]                        ;Премества се оказателя за името в EDX
  |          4014D3        LEA       ECX,[ESP+10]                        ;Премества оказателя за генерирания до момента Serial в ECX
  |          4014D7        PUSH    10 
  |          4014D9        PUSH    ECX                                       ;Пушва се ECX
  |          4014DA        MOV     AL,[EAX+01]                           ;Премества хекса втората буква от името в AL
  |          4014DD        MOVSX  EDX,AL                                 ;Премества  хекса на втората буква от името в EDX
  |          4014E0        SUB       EDX,74868196                       ;Вади от EDX 74868196    и записва резултата в EDX
  |          4014E6        IMUL      EDX,EDI                               ;Умножава EDX с ЕDI(Сбора на HEX-а на отделните букви)
  |          4014E9        PUSH     EDX                                     ;Пушва EDX
  |--------4014EA        CALL     EBX                                     ;конвертва регисъра ЕDX  в [EAX](Calculate #3 complete)
  |          4014EC        ADD      ESP,0C 
  |          4014EF        LEA        ECX,[ESP+0C] 
  |          4014F3        PUSH      EAX 
  |          4014F4        CALL      00401798 
  |          4014F9        MOV       ECX,[ESP+0C]                   ;Премества се в ECX се Генерирания до този момент
  
|                                                                                  ;номер(Calc#1+"-" + Calc#2 + "-" + Calc#3)
  |          4014FD        MOV      EAX,[ESI+60]                     ;Премесва в EAX  въведения от потребитяля Serial
  |          401500        PUSH     ECX                                   ;Пушва ECX
  |          401501        PUSH     EAX                                   ;Пушва EAX
  |          401502        CALL      [004021B0]                       ;Сравнява EAX с ECX
  |          401508        ADD       ESP,08 
  |          40150B        TEST      EAX,EAX 
  |          40150D        POP       EBX 
  |          40150E        PUSH      00 
  |          401510        PUSH     0040307C 
  |          401515        JNZ       0040151E                           ;Прескача на 0040151E ако ne e 0(Ако EAX и  ECX по горе сe
 
|                                                                                  ;различни  са различни прескача 0040151E)
  |          401517        PUSH     00403040 
  |          40151C        JMP       00401523 
 
|          Нека сега уточним алгоритъма.Събира HEX-а на всички букви в дадена променлива.После сглобява 3 стринга с
 
|          тирета междо тях.Първия се образува като от HEX-а на втората буква се извади 364D73D9  и резултатът се умножи
 
|          по сбора на HEX-а на името.Втория се образува като от HEX-а на втората буква се извади 321ABFDB  и резултатът
 
|          се умножи по сбора на HEX-а на името.Третия се образува като от HEX-а на втората буква се извади  74868196  и
 
|          резултатът се умножи по сбора на HEX-а на името.Сега вече като знаете алгоритама можете да си направите и 
 
|          Keygen
-----------------------------------------------------------------------------------------------------------------------------------------------------
Ето и самия 'CALL EBX', не че е от значение де :))
-----------------------------------------------------------------------------------------------------------------------------------------------------
  |---->78002D69       PUSH      EBP
            78002D6A       MOV     EBP,ESP
            78002D6C       CMP     dword ptr[EBP+10],A
        |--78002D70        JNZ     78002D7C
        |   78002D72        CMP    dword ptr[EBP+08],00
        |   78002D76        JL        78012C3B
        |>78002D7C       PUSH    00
            78002D7E        PUSH    dword ptr[EBP+10]
            78002D71        PUSH    dword ptr[EBP+0C]
            78002D81        PUSH    dword ptr[EBP+0C]
            78002D84        PUSH    dword ptr[EBP+08]
        |--78002D87        CALL    78002D94
        |   78002D8C        MOV     EAX,[EBP+0C]
        |   78002D8F         ADD     ESP,10
        |   78002D92         POP      EBP
        |   78002D93         RET
        |>78002D94         PUSH    EBP   
            78002D95         MOV     EBP,ESP
            78002D97         CMP     dword ptr [EBP+14],00
            78002D9B         MOV     ECX,[EBP+0C]
            78002D9E         JNZ       78012C44
            78002DA4         PUSH    ESI
            78002DA5         MOV     ESI,ECX
        |>78002DA7         MOV     EAX,[EBP+08]
        |   78002DAA         XOR     EDX,EDX
        |   78002DAC         DIV      dword ptr [EBP+10]
        |   78002DAF         CMP     EDX,09
 
|----|--78002DB5         JA        78012C50
  |     |   78002DBB         ADD     DL,30
  | |--|>78002DBE         MOV     [ECX],DL
  | |  |   78002DC0         INC      ECX
  | |  |   78002DC1         TEST    EAX,EAX
  | |  |--78002DC3         JA        78002DA7
  | |       78002DC5         AND     byte ptr[ECX],0
  | |       78002DC8         DEC     ECX
  | |       78002DC9         MOV     DL,[ESI]
  | |       78002DCB         MOV     AL,[ECX]
  | |       78002DCD         MOV     [ECX],DL
  | |       78002DCF          MOV     [ESI],AL
  | |       78002DD1         DEC      ECX
  | |       78002DD2         INC       ESI
  | |       78002DD3         CMP      ESI,ECX
  | |       78002DD5         JB         78002DC9
  | |       78002DD7         POP      ESI
  | |       78002DD8         POP      EDI
  | |       78002DD9         RET
-----------------------------------------------------------------------------------------------------------------------------------------------------
  
|----->78002C50         ADD      DC,57
    |-----78002C53         JMP       78002DBE


---------------------------------------------------------------------------------------------------------------------------------------------:shade:---

Дата: 11.1о.2оо3

Автор: shade!prf

Поща: sashoo@abv.bg