Сейчас на форуме: asfa, bartolomeo (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Не могу отследить проверку серийника
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 5.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 15:55 · Поправил: Модератор
· Личное сообщение · #1

Прграмма с жестким серийником считывает его практически сразу после ввода. Сама программа, если ставить бряк на секцию код, постоянно останавливается если активно ее окно. То есть идут циклы. Много чего пробовал делать, но пока не удалось толком ничего. Даже смотрел в стеке какой функцие вызывается окно о неправильном серийнике. Оказалось из библиотеки USER32, хотя этой функции в списке нет, а также бряк на нее не ставится из самого кода проги. Если только перейти в модуль USER32 и там поставить бряк на определенный адрес. Также в стеке видел мой неправильный серийник, пробовал ставить бряк на этот адрес, но все что там происходило было уже после сравнения и вело к выводу сообщения о неправильном серийнике. Причем перед выходом окна о неправильном серийнике стои CALL и ведет не в библиотеку USER32. А если поставить бряк в самой библиотеке USER32, то адреса возврата в стеке нет. Как работает эта программа я не знаю. Что можно попробывать сделать, чтобы поймать момент считывания серийника ??? Если ставить bp на TRANSLATE MESSAGE не помогает. Пробовал и условные бряки ставить, но тоже не помогло особо. И еще. Сразу после ввода серийника в буфере памяти его нет. А это говорит о том, что когда я делаю окно программы неактивным, то она уже серийник как-то шифрует. И я в этом собственно убедился, когда посмотрел что она делает с введенным серийником сохраненным в стеке...



Ранг: 18.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 16:21
· Личное сообщение · #2

Мдя...Объяснил *WALL*
Апишпион тебе в руки. Потом ставишь аппаратные бряки и отслеживаешь обращения к введенному серийнику.
Выкладывай прогу.



Ранг: 5.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 16:28
· Личное сообщение · #3

Апишпионов я много перпробывал. Но апишпионы для лоховских программ только подхядят на мой взгляд. Прогу выложить не могу. Не поместится. Спасибо про совет про апишпионы. Мож еще кто умную мысль подскажет.



Ранг: 18.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 16:37
· Личное сообщение · #4

Если не устраивает шпион и прога не пакована, и функции вызываются стандартным способом (то бишь прописаны в импорте) то можешь попробовать бряк на все функции. Search for -all intermodular calls. Тут можно поставить бряк на все функции. Затем убираешь явно лишние типа Enter/LeaveCriticalSection. Запускаешь прогу на исполнение, по пути убирая все сработавшия бряки. Когда наконец сможешь нажать кнопку "зарегить", то вылетешь на функции где считывается серийник, ну или рядом с ней.
Метод, конечно, убогий, но работает ))




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

Создано: 03 апреля 2008 16:39
· Личное сообщение · #5

Kerberos попробуй.




Ранг: 279.1 (наставник)
Активность: 0.160
Статус: Участник
wizard

Создано: 03 апреля 2008 16:50 · Поправил: MACKLIA
· Личное сообщение · #6

jondo пишет:
Даже смотрел в стеке какой функцие вызывается окно о неправильном серийнике. Оказалось из библиотеки USER32


Вот это открытие ,создавать подобные темы нужно в разделе новичков ,да ито там тебе не сильно помогут - если ты не можешь выложить прог.

jondo пишет:
хотя этой функции в списке нет, а также бряк на нее не ставится из самого кода проги

jondo на какую именно функцию ты ставиш бряк ?

-----
Что один человек сделал , другой всегда сломать может...




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 03 апреля 2008 17:33
· Личное сообщение · #7

Да скорее всего там стоит какой-нибудь прот или человек вообще слепо тыкает всё подряд и пишет свои мысли здесь.
А может быть это крякми?
В любом случае, в раздел для новичков, а там посмотрим.

-----
Всем привет, я вернулся




Ранг: 5.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 20:36
· Личное сообщение · #8

Спасибо Wild_One за советы, но таких прог где они срабатывают скоро не будет вообще. Имхо.
Если модератор мудрец ничего сказать не может думаю действительно не туда зашел. А скорее всего как мне кажется есть проги, взломать которые могут единицы.
*********************************************************************
jondo пишет:
хотя этой функции в списке нет, а также бряк на нее не ставится из самого кода проги
jondo на какую именно функцию ты ставиш бряк ?
**********************************************************************
MessageBoxA. Но после ее вызова нет адреса возврата. Но это все так мелочи. Мне бы какой-нибудь способ, как можно проследить момент, когда программа считывает мой ввод серийника.




Ранг: 88.4 (постоянный)
Активность: 0.080
Статус: Участник

Создано: 03 апреля 2008 20:48
· Личное сообщение · #9

jondo
Ты напиши нормально что за прога, ссылку на неё. А также как происходит считывание серийника. Есть кнопка или авто проверка при вводе?
Начем написана прога?
jondo пишет:
Если модератор мудрец ничего сказать не может думаю действительно не туда зашел.

На то что ты написал, действительно не кто не чего внятного и не ответит.



Ранг: 18.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 03 апреля 2008 21:07
· Личное сообщение · #10

jondo ты хоть попробовал то, что тебе предложили? Какой тебе еще нужен способ? Если уж так хочется универсального геморроя, то отлавливай создание окна и подсмотри процедуру обработку сообщений для него. Туда и ставь условный бряк на сообщение от ОС. А то что это пробовал и тебе не помогло... RTFM




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 03 апреля 2008 22:35
· Личное сообщение · #11

jondo пишет:
А это говорит о том, что когда я делаю окно программы неактивным, то она уже серийник как-то шифрует.

поставь айс... он фокус с окна не снимает

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 04 апреля 2008 09:10
· Личное сообщение · #12

jondo пишет:
Если модератор мудрец ничего сказать не может думаю действительно не туда зашел.

Циферки и ранги за ними для придурков сделаны. Ей Богу, я за то чтобы убрать данные о количестве постов глубоко в свойства участника, где им и место. Но это может сделать только Администратор.
А модераторы, по своей обязанности, должны всего лишь следить за порядком на форуме.
Например:
- топики чайников должны быть в разделе новичков;
- не должно быть тем с дебильными названиями вроде "Нужен совет"
и т. п.
Дальше буду просто удалять топики автора, если в названии нет никакой информации (читаем учебник информатики для младших классов).

-----
Всем привет, я вернулся




Ранг: 5.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 апреля 2008 12:35 · Поправил: jondo
· Личное сообщение · #13

TO Isaev. Если SoftAce не ставится из=за видеокарты, то че делать. Есть другие отладчики которые фокус с окна не снимают ? И почему интересно если поставить bp на доступ к памяти во время запуска программы, то айс не будет реагировать на циклы. Что значит понятие - фокус окна. Если под этим подразумеваются любые функции и циклы при бряке на доступ к памяти которые срабатывают сами по себе то это одно. А если это только какая-нибудь одна функция, то это мне не поможет.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 апреля 2008 12:57 · Поправил: Milfhunter
· Личное сообщение · #14

Я прошу прощения, что вмешиваюсь в разговор столь опытных людей. Но хотелось бы написать пару строк по теме. Если нужно найти, где извлекается текст(в данном случае серийник), то имеет смысл поставить точку останова на GetDlgItemText. Хакеры так не делают, но я ламер. мне можно



Ранг: 5.3 (гость)
Активность: 0.010
Статус: Участник

Создано: 04 апреля 2008 14:55 · Поправил: jondo
· Личное сообщение · #15

TO Milfhunter. Сам удивляюсь, но почему-то этот бряк не работает. Хотя когда ставиш бряк на GetWimdowTextA то после ввода серийника ищу его значить в памяти и его там почему-то нет. Удивительно. А потом срабатывает бряк на GetWimdowTextA после нажатия кнопки OK. В строке буфер, если перейти в дамп, моего серийника нет. И в памяти его нет. А зачем тогда срабатывает GetWimdowTextA. Сначала было непонятно. А потом после того, как выскакивает окно о непр. серийнике, то в памяти по трем адресам появляется мой серийник. А потом когда второй раз ставишь бряк на GetWimdowTextA то в буфере оказывается серийник введенный в прошлый раз. Вот такой вот геморрой.
Отсюды вывод, программа сразу считывает серийник и сразу его на ходу и проверяет. Вот собственно как поймать этот момент я не знаю. Жду умных мыслей. И поясню также, что бряк на TranslateMessage не приносит удовлетворения.



Ранг: 22.5 (новичок)
Активность: 0.020
Статус: Участник

Создано: 04 апреля 2008 16:14
· Личное сообщение · #16

Ставь бряк на нажатии клавиши ОК, после ввода серийника. Трассировать долго придется, но зато вся проверка целиком от ввода номера, до вывода сообщения о неправильном серийнике.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 апреля 2008 22:47
· Личное сообщение · #17

Ну в слепую понять что-то тяжело будет. Если не хочешь выкладывать прогу, то разбираться придется самому, я думаю.



Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 05 апреля 2008 12:45
· Личное сообщение · #18

jondo пишет:
А потом срабатывает бряк на GetWimdowTextA после нажатия кнопки OK. В строке буфер, если перейти в дамп, моего серийника нет

Ты же брякнулся - значит функция не исполнилась потрейсь на одну операцию и смотри (в олли f8);

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 апреля 2008 23:38
· Личное сообщение · #19

А почему нельзя просто загрузить в ИДА прогу и найти в дизассемблерном листинге вызов GetWindowTextA простым строковым поиском? а там дальше протрассировать, че происходит после вызова. ИДА нагляднее, она даже MFC классы знает.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 07 апреля 2008 21:42
· Личное сообщение · #20

Ищите не ключ, стало быть, а сообщение о неверном ключе. Без проги гадать можно долго. Пока не будет дистриба, не вижу особого смысла ковыряться дальше, так что выкладывайте или закройте топик.



Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2011 05:18 · Поправил: anunak
· Личное сообщение · #21

Archer пишет:
Ищите не ключ, стало быть, а сообщение о неверном ключе.
а если это сообщение вызывается из одного места (например самое первое типа "Вы хотите установить..." и "Вы ввели неверный код" причём их в All referenced text strings нету) надо искать причину и то место в коде, где происходит некие изменения? а как в Olly предыдущую операцию просмотреть, там можно назад пойти по коду или только самому просматривать? и может ли серийный номер в процессе ввода (по функции GetWindowTextW) уже сразу проверяться при вводе одного символа? и что означает например bp на GetWindowTextW если поставить, то остановка происходит при вводе каждого знака в первые 4 поля (там их 5 всего), а в последнем такой остановки не происходит? ...например вывод строки называется по англицки "bag_key итд" (видать он там русский просто подгружает где-то в этой функции, чтобы по русски оно писало, учил ассемблер по Калашниковe лет 5 назад, только под дос врубился, под win не бумбум) её нашёл значит от появления окна для ввода до этого вывода, где-то проверка, её надо найти... но там чё-то он сразу гонять начинает по регистрам, как вводишь первый знак и, если всё сразу ввести и bp поставить то тоже, то четыре знака поколбасит, то побольше, то вообще всё, то начало и конец... и может ли быть провека номера, код проверки, в модуле например User32? или проверка, только в самом коде где-то, если никаких модулей нету проверок строк?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 мая 2011 08:28
· Личное сообщение · #22

Что то по описанию похоже на установщик программы, там обычно скомпилированные скрипты используются или внешние библиотеки. В системных библиотеках не может быть проверки серийника, на то они и системные.

-----
Yann Tiersen best and do not fuck




Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2011 09:35 · Поправил: anunak
· Личное сообщение · #23

PE_Kill пишет:
Что то по описанию похоже на установщик программы, там обычно скомпилированные скрипты используются или внешние библиотеки.
ну это установщик игры, который просит серийник, чтобы установиться...

PE_Kill пишет:
В системных библиотеках не может быть проверки серийника, на то они и системные.
а сама программа на время в библиотеку такую свой код добавить не может или его изменить? чтобы от туда из библиотеки на проверку переходило и назад...

***

а такое на проверку похоже в EBP ascii строка с полным серийником, который вводился и если по f8 шагать, то будет медленно эта строка уменьшаться, а в EAX ascii строка подгружается, где все числа и буквы от "1...Z" и в EDX начиная с "4...Z" только это тогда геморройная проверка такая, что он из всех символов используя, какой-то алгоритм вычисления номеров нормальных числами их сравнивает с самими номерами тоесть бесполезно искать даже фрагменты серийников в файле, такое может быть? или это вообще не то что нужно?




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 19 мая 2011 14:03
· Личное сообщение · #24

Archer пишет:
Без проги гадать можно долго. Пока не будет дистриба, не вижу особого смысла ковыряться дальше, так что выкладывайте или закройте топик.


jondo пишет:
Прогу выложить не могу. Не поместится.

Про файлообменники слышал?

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=





Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

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

jondo пишет:
Прогу выложить не могу. Не поместится.


[0utC4St] пишет:
Про файлообменники слышал?


Вы на дату поста посмотрите.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




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

Создано: 19 мая 2011 14:40
· Личное сообщение · #26

4kusNick Имелось ввиду, что anunak пишет много, но бесполезно Без самой проги.



Ранг: 2.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2011 15:25
· Личное сообщение · #27

прогу выложить? это мы могём --> Link <-- если зацените скажите, какой уровень должен быть, чтобы серийники вытащить от туда по 10ти бальной шкале... будем считать 2,5 это тот, кто туториалы Нарвахи читал (или какой это уровень, кто Нарваху читал?)



Ранг: 22.4 (новичок), 19thx
Активность: 0.020
Статус: Участник

Создано: 19 мая 2011 18:11
· Личное сообщение · #28

патчик на 0.5 ,не надо???????



Ранг: 37.1 (посетитель), 11thx
Активность: 0.030
Статус: Участник

Создано: 19 мая 2011 19:40 · Поправил: Promix_17
· Личное сообщение · #29

Всего одна команда: bpx GetWindowTextW

Попадаешь в цикл MFC, который автоматически изменяет значения переменных в программе (это возникает при связывании элемента управления с требуемой программистом переменной), находишь куда попадает требуемое значение и находишь проверку серийника брейкпоинтом на обращение к памяти.



Ранг: 37.1 (посетитель), 11thx
Активность: 0.030
Статус: Участник

Создано: 19 мая 2011 20:12
· Личное сообщение · #30

Не могу не поделиться, моя первая, реально взломанная настоящая программа: 0x41D7FC
Да, те же крякми - и то намного труднее...


. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Не могу отследить проверку серийника
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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