eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: MasterSoft
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Sublime Text 2 нужен хелп по алгоритму генерации кода
Посл.ответ Сообщение

Ранг: 0.5 (гость)
Статус: Участник

Создано: 19 марта 2014 13:49 · Поправил: 1nufnuf1 New!
Цитата · Личное сообщение · #1

итак цель - узнать алгоритм генерации кода в Sublime Text 2
инструменты - ОллиДебаг

Что я сделал:
поставил бряк на MessageBoxA
выловил место проверки кода (0009B060)
затем пошел выше и нашел начало процедуры проверки
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 012EAF20  /$  81EC 04080000 SUB ESP,804
  4. 012EAF26  |.  53            PUSH EBX
  5. 012EAF27  |.  55            PUSH EBP
  6. 012EAF28  |.  8BAC24 100800 MOV EBP,DWORD PTR SS:[ESP+810]
  7. 012EAF2F  |.  C74424 08 000 MOV DWORD PTR SS:[ESP+8],0
  8. 012EAF37  |.  BB 10000000   MOV EBX,10
  9. 012EAF3C  |.  83FE 01       CMP ESI,1
  10. 012EAF3F  |.  75 46         JNE SHORT 012EAF87
  11. 012EAF41  |.  3958 18       CMP DWORD PTR DS:[EAX+18],EBX
  12. 012EAF44  |.  72 05         JB SHORT 012EAF4B
  13. 012EAF46  |.  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
  14. 012EAF49  |.  EB 03         JMP SHORT 012EAF4E
  15. 012EAF4B  |>  83C0 04       ADD EAX,4
  16. 012EAF4E  |>  3959 18       CMP DWORD PTR DS:[ECX+18],EBX
  17. 012EAF51  |.  72 05         JB SHORT 012EAF58
  18. 012EAF53  |.  8B49 04       MOV ECX,DWORD PTR DS:[ECX+4]
  19. 012EAF56  |.  EB 03         JMP SHORT 012EAF5B
  20. 012EAF58  |>  83C1 04       ADD ECX,4
  21. 012EAF5B  |>  395F 18       CMP DWORD PTR DS:[EDI+18],EBX
  22. 012EAF5E  |.  72 05         JB SHORT 012EAF65
  23. 012EAF60  |.  8B57 04       MOV EDX,DWORD PTR DS:[EDI+4]
  24. 012EAF63  |.  EB 03         JMP SHORT 012EAF68
  25. 012EAF65  |>  8D57 04       LEA EDX,[EDI+4]
  26. 012EAF68  |>  50            PUSH EAX                                 ; /<%s>
  27. 012EAF69  |.  51            PUSH ECX                                 ; |<%s>
  28. 012EAF6A  |.  52            PUSH EDX                                 ; |<%s>
  29. 012EAF6B  |.  68 BC925401   PUSH OFFSET 015492BC                     ; |Format = "%s
  30. Single User License
  31. %s-%s"
  32. 012EAF70  |.  8D4424 1C     LEA EAX,[ESP+1C]                         ; |
  33. 012EAF74  |.  68 00080000   PUSH 800                                 ; |Arg2 = 800
  34. 012EAF79  |.  50            PUSH EAX                                 ; |Arg1
  35. 012EAF7A  |.  E8 D1CFF9FF   CALL 01287F50                            ; \sublime_text.01287F50
  36. 012EAF7F  |.  83C4 18       ADD ESP,18
  37. 012EAF82  |.  E9 89000000   JMP 012EB010
  38. 012EAF87  |>  85F6          TEST ESI,ESI
  39. 012EAF89  |.  75 43         JNE SHORT 012EAFCE
  40. 012EAF8B  |.  3958 18       CMP DWORD PTR DS:[EAX+18],EBX
  41. 012EAF8E  |.  72 05         JB SHORT 012EAF95
  42. 012EAF90  |.  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
  43. 012EAF93  |.  EB 03         JMP SHORT 012EAF98
  44. 012EAF95  |>  83C0 04       ADD EAX,4
  45. 012EAF98  |>  3959 18       CMP DWORD PTR DS:[ECX+18],EBX
  46. 012EAF9B  |.  72 05         JB SHORT 012EAFA2
  47. 012EAF9D  |.  8B49 04       MOV ECX,DWORD PTR DS:[ECX+4]
  48. 012EAFA0  |.  EB 03         JMP SHORT 012EAFA5
  49. 012EAFA2  |>  83C1 04       ADD ECX,4
  50. 012EAFA5  |>  395F 18       CMP DWORD PTR DS:[EDI+18],EBX
  51. 012EAFA8  |.  72 05         JB SHORT 012EAFAF
  52. 012EAFAA  |.  8B57 04       MOV EDX,DWORD PTR DS:[EDI+4]
  53. 012EAFAD  |.  EB 03         JMP SHORT 012EAFB2
  54. 012EAFAF  |>  8D57 04       LEA EDX,[EDI+4]
  55. 012EAFB2  |>  50            PUSH EAX                                 ; /<%s>
  56. 012EAFB3  |.  51            PUSH ECX                                 ; |<%s>
  57. 012EAFB4  |.  52            PUSH EDX                                 ; |<%s>
  58. 012EAFB5  |.  68 9C925401   PUSH OFFSET 0154929C                     ; |Format = "%s
  59. Unlimited User License
  60. %s-%s"
  61. 012EAFBA  |.  8D4C24 1C     LEA ECX,[ESP+1C]                         ; |
  62. 012EAFBE  |.  68 00080000   PUSH 800                                 ; |Arg2 = 800
  63. 012EAFC3  |.  51            PUSH ECX                                 ; |Arg1
  64. 012EAFC4  |.  E8 87CFF9FF   CALL 01287F50                            ; \sublime_text.01287F50
  65. 012EAFC9  |.  83C4 18       ADD ESP,18
  66. 012EAFCC  |.  EB 42         JMP SHORT 012EB010
  67. 012EAFCE  |>  3958 18       CMP DWORD PTR DS:[EAX+18],EBX
  68. 012EAFD1  |.  72 05         JB SHORT 012EAFD8
  69. 012EAFD3  |.  8B40 04       MOV EAX,DWORD PTR DS:[EAX+4]
  70. 012EAFD6  |.  EB 03         JMP SHORT 012EAFDB
  71. 012EAFD8  |>  83C0 04       ADD EAX,4
  72. 012EAFDB  |>  3959 18       CMP DWORD PTR DS:[ECX+18],EBX
  73. 012EAFDE  |.  72 05         JB SHORT 012EAFE5
  74. 012EAFE0  |.  8B51 04       MOV EDX,DWORD PTR DS:[ECX+4]
  75. 012EAFE3  |.  EB 03         JMP SHORT 012EAFE8
  76. 012EAFE5  |>  8D51 04       LEA EDX,[ECX+4]
  77. 012EAFE8  |>  395F 18       CMP DWORD PTR DS:[EDI+18],EBX
  78. 012EAFEB  |.  72 05         JB SHORT 012EAFF2
  79. 012EAFED  |.  8B4F 04       MOV ECX,DWORD PTR DS:[EDI+4]
  80. 012EAFF0  |.  EB 03         JMP SHORT 012EAFF5
  81. 012EAFF2  |>  8D4F 04       LEA ECX,[EDI+4]
  82. 012EAFF5  |>  50            PUSH EAX                                 ; /<%s>
  83. 012EAFF6  |.  52            PUSH EDX                                 ; |<%s>
  84. 012EAFF7  |.  56            PUSH ESI                                 ; |<%d>
  85. 012EAFF8  |.  51            PUSH ECX                                 ; |<%s>
  86. 012EAFF9  |.  68 80925401   PUSH OFFSET 01549280                     ; |Format = "%s
  87. %d User License
  88. %s-%s"
  89. 012EAFFE  |.  8D5424 20     LEA EDX,[ESP+20]                         ; |
  90. 012EB002  |.  68 00080000   PUSH 800                                 ; |Arg2 = 800
  91. 012EB007  |.  52            PUSH EDX                                 ; |Arg1
  92. 012EB008  |.  E8 43CFF9FF   CALL 01287F50                            ; \sublime_text.01287F50
  93. 012EB00D  |.  83C4 1C       ADD ESP,1C
  94. 012EB010  |>  8D4424 0C     LEA EAX,[ESP+0C]
  95. 012EB014  |.  50            PUSH EAX
  96. 012EB015  |.  8BCD          MOV ECX,EBP
  97. 012EB017  |.  FF15 A4235401 CALL DWORD PTR DS:[<&MSVCP90.??0?$basic_
  98. 012EB01D  |.  8BC5          MOV EAX,EBP
  99. 012EB01F  |.  5D            POP EBP
  100. 012EB020  |.  5B            POP EBX
  101. 012EB021  |.  81C4 04080000 ADD ESP,804
  102. 012EB027  \.  C3            RETN
  103.  


дальше пошел через F7 нашел это (раскоментировал по командам но немогу понять назначерие)
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 61101BAF    49              DEC ECX                                              уменьшаем на 1 ECX
  4. 61101BB0    8038 00         CMP BYTE PTR DS:[EAX],0                  сравниваем с нулём
  5. 61101BB3    74 05           JE SHORT 61101BBA                                        если равны - переходим в начало
  6. 61101BB5    40              INC EAX                                                увеличиваем на 1 EAX         
  7. 61101BB6    3BCE            CMP ECX,ESI                              сравниваем ECX,ESI  
  8. 61101BB8  ^ 75 F5           JNE SHORT 61101BAF                                  если равны - переходим в начало

Ранг: 0.5 (гость)
Статус: Участник

Создано: 19 марта 2014 13:53 · Поправил: 1nufnuf1 New!
Цитата · Личное сообщение · #2

также нашел этот кусок
Code:
  1. CPU Disasm
  2. Address   Hex dump          Command                                  Comments
  3. 6110136C    43              INC EBX
  4. 6110136D    83BD D8FDFFFF 0 CMP DWORD PTR SS:[EBP-228],0
  5. 61101374    899D C4FDFFFF   MOV DWORD PTR SS:[EBP-23C],EBX
  6. 6110137A    0F8C F0090000   JL 61101D70
  7. 61101380    8AC2            MOV AL,DL
  8. 61101382    2C 20           SUB AL,20
  9. 61101384    3C 58           CMP AL,58
  10. 61101386    77 11           JA SHORT 61101399
  11. 61101388    0FBEC2          MOVSX EAX,DL
  12. 6110138B    0FBE80 F01B0B61 MOVSX EAX,BYTE PTR DS:[EAX+610B1BF0]
  13. 61101392    83E0 0F         AND EAX,0000000F
  14. 61101395    33F6            XOR ESI,ESI
  15. 61101397    EB 04           JMP SHORT 6110139D
  16. 61101399    33F6            XOR ESI,ESI
  17. 6110139B    33C0            XOR EAX,EAX
  18. 6110139D    0FBE84C1 101C0B MOVSX EAX,BYTE PTR DS:[EAX*8+ECX+610B1C1
  19. 611013A5    6A 07           PUSH 7
  20. 611013A7    C1F8 04         SAR EAX,4
  21. 611013AA    59              POP ECX
  22. 611013AB    8985 94FDFFFF   MOV DWORD PTR SS:[EBP-26C],EAX
  23. 611013B1    3BC1            CMP EAX,ECX
  24. 611013B3    0F87 92090000   JA 61101D4B
  25. 611013B9    FF2485 981D1061 JMP DWORD PTR DS:[EAX*4+61101D98]
  26. 611013C0    838D E8FDFFFF F OR DWORD PTR SS:[EBP-218],FFFFFFFF
  27. 611013C7    89B5 90FDFFFF   MOV DWORD PTR SS:[EBP-270],ESI
  28. 611013CD    89B5 C0FDFFFF   MOV DWORD PTR SS:[EBP-240],ESI
  29. 611013D3    89B5 CCFDFFFF   MOV DWORD PTR SS:[EBP-234],ESI
  30. 611013D9    89B5 D0FDFFFF   MOV DWORD PTR SS:[EBP-230],ESI
  31. 611013DF    89B5 F0FDFFFF   MOV DWORD PTR SS:[EBP-210],ESI
  32. 611013E5    89B5 C8FDFFFF   MOV DWORD PTR SS:[EBP-238],ESI
  33. 611013EB    E9 5B090000     JMP 61101D4B
  34. 611013F0    0FBEC2          MOVSX EAX,DL
  35. 611013F3    83E8 20         SUB EAX,20
  36. 611013F6    74 4A           JE SHORT 61101442
  37. 611013F8    83E8 03         SUB EAX,3
  38. 611013FB    74 36           JE SHORT 61101433
  39. 611013FD    83E8 08         SUB EAX,8
  40. 61101400    74 25           JE SHORT 61101427
  41. 61101402    48              DEC EAX
  42. 61101403    48              DEC EAX
  43. 61101404    74 15           JE SHORT 6110141B
  44. 61101406    83E8 03         SUB EAX,3
  45. 61101409    0F85 3C090000   JNE 61101D4B
  46. 6110140F    838D F0FDFFFF 0 OR DWORD PTR SS:[EBP-210],00000008
  47. 61101416    E9 30090000     JMP 61101D4B
  48. 6110141B    838D F0FDFFFF 0 OR DWORD PTR SS:[EBP-210],00000004
  49. 61101422    E9 24090000     JMP 61101D4B
  50. 61101427    838D F0FDFFFF 0 OR DWORD PTR SS:[EBP-210],00000001
  51. 6110142E    E9 18090000     JMP 61101D4B
  52. 61101433    818D F0FDFFFF 8 OR DWORD PTR SS:[EBP-210],00000080
  53. 6110143D    E9 09090000     JMP 61101D4B
  54. 61101442    838D F0FDFFFF 0 OR DWORD PTR SS:[EBP-210],00000002
  55. 61101449    E9 FD080000     JMP 61101D4B
  56. 6110144E    80FA 2A         CMP DL,2A
  57. 61101451    75 2C           JNE SHORT 6110147F
  58. 61101453    83C7 04         ADD EDI,4
  59. 61101456    89BD DCFDFFFF   MOV DWORD PTR SS:[EBP-224],EDI
  60. 6110145C    8B7F FC         MOV EDI,DWORD PTR DS:[EDI-4]
  61. 6110145F    3BFE            CMP EDI,ESI
  62. 61101461    89BD CCFDFFFF   MOV DWORD PTR SS:[EBP-234],EDI
  63. 61101467    0F8D DE080000   JGE 61101D4B
  64. 6110146D    838D F0FDFFFF 0 OR DWORD PTR SS:[EBP-210],00000004
  65. 61101474    F79D CCFDFFFF   NEG DWORD PTR SS:[EBP-234]
  66. 6110147A    E9 CC080000     JMP 61101D4B
  67. 6110147F    8B85 CCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-234]
  68. 61101485    6BC0 0A         IMUL EAX,EAX,0A
  69. 61101488    0FBECA          MOVSX ECX,DL
  70. 6110148B    8D4408 D0       LEA EAX,[ECX+EAX-30]
  71. 6110148F    8985 CCFDFFFF   MOV DWORD PTR SS:[EBP-234],EAX
  72. 61101495    E9 B1080000     JMP 61101D4B
  73. 6110149A    89B5 E8FDFFFF   MOV DWORD PTR SS:[EBP-218],ESI
  74. 611014A0    E9 A6080000     JMP 61101D4B
  75. 611014A5    80FA 2A         CMP DL,2A
  76. 611014A8    75 26           JNE SHORT 611014D0
  77. 611014AA    83C7 04         ADD EDI,4
  78. 611014AD    89BD DCFDFFFF   MOV DWORD PTR SS:[EBP-224],EDI
  79. 611014B3    8B7F FC         MOV EDI,DWORD PTR DS:[EDI-4]
  80.  


в смысл которого тоже не вьехал - слишком скудные знания имею в асме.
товарищи гуру - подскажите по верному ли пути иду
и, извиняюсь за наглось, если желаемое нашел то ткните носом, мозг от асма плавится, палец на F7 затек


Ранг: 102.5 (ветеран)
Статус: Участник

Создано: 19 марта 2014 17:16 New!
Цитата · Личное сообщение · #3

Неужели не натолкнуло ни на какие мысли, что все варианты лечения для ST - это или патчи, или кейгены с патчами или пара скарженых официальных серийников? Там RSA.

Ранг: 0.5 (гость)
Статус: Участник

Создано: 19 марта 2014 17:53 · Поправил: 1nufnuf1 New!
Цитата · Личное сообщение · #4

ManHunter по каким признакам это видно?
патч к стати там элементарный
т.е. если априори взять что там RSA и взять образец ключа
Code:
  1. —–BEGIN LICENSE—–
  2. Patrick Carey
  3. Unlimited User License
  4. EA7E-18848
  5. 4982D83B6313800EBD801600D7E3CC13
  6. F2CD59825E2B4C4A18490C5815DF68D6
  7. A5EFCC8698CFE589E105EA829C5273C0
  8. C5744F0857FAD2169C88620898C3845A
  9. 1F4521CFC160EEC7A9B382DE605C2E6D
  10. DE84CD0160666D30AA8A0C5492D90BB2
  11. 75DEFB9FD0275389F74A59BB0CA2B4EF
  12. EA91E646C7F2A688276BCF18E971E372
  13. —–END LICENSE—–


имя это открытый ключь, сам ключь это hex от ключа шифрованого RSA?!

ещё во время отладки заметил в стеке такую штуку
Code:
  1. CPU Stack
  2. V>Comments
  3. | ; ASCII "30819D300D06092A864886F70D010101050003818B0030818702818100D87BA24562F7C5D14A0CFB12B9740C195C6BDC7E6D6EC92BAC0EB29D59E1D9AE67890C2B88C3ABDCAFFE7D4A33DCC1BFBE531A251CEF0C923F06BE79B2328559ACFEE986D5E15E4D1766EA56C4E10657FA74DB0977C3FB7582B"...
  4.  
  5. .
  6. CPU Stack
  7. V>Comments
  8. | ; ASCII "4982D83B6313800EBD801600D7E3CC13F2CD59825E2B4C4A18490C5815DF68D6A5EFCC8698CFE589E105EA829C5273C0C5744F0857FAD2169C88620898C3845A1F4521CFC160EEC7A9B382DE605C2E6DDE84CD0160666D30AA8A0C5492D90BB275DEFB9FD0275389F74A59BB0CA2B4EFEA91E646C7F2A"...


последнее значение это ключь только без этого (688276BCF18E971E372) хвостика
это не сравнение ключей случаем? причем первый походу генерится на имя.

ЗЫЗЫ:смущает троеточие - это олли неможет отобразить или реальное значение такое есть(в смысле без хвостика) пробовал растянуть эту колонку на ширину моника значение осталось такимже. копировал через контрол+С

/-------------------------------------------------------------------------------------------------------------------------------------/
форум не дает добавить сообщение.(говорит жди до завтра) пишу тут
Follow in dump - результат тот же - в конце троеточие, что это за бяка такая? у коротких значений нет ведь.
прикрепляю скрин(на скрине виден сверху значение равное значению в строке 2 только смещенное, складывается впечатление что Олька режет - неможет вместить столько символов в строке.)
вопрос актуален - как глянуть полное значение в стеке?

{ Атач доступен только для участников форума } - stek.JPG


Ранг: 225.8 (наставник)
Статус: Участник
radical

Создано: 19 марта 2014 22:31 New!
Цитата · Личное сообщение · #5

1nufnuf1 пишет:
смущает троеточие

или Follow in dump -> Immediate constant или просто в окне стека Follow in dump и всё видно

1nufnuf1 пишет:
имя это открытый ключь, сам ключь это hex от ключа шифрованого RSA?!

Как-то смутно написано, почитай теория RSA, глянь реализацию на CryptoPP, вроде оно юзается в ST.

| Сообщение посчитали полезным: 1nufnuf1

 eXeL@B —› Вопросы новичков —› Sublime Text 2 нужен хелп по алгоритму генерации кода

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS