Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Обясните пожалуйста в чём загвоздка....
Посл.ответ Сообщение

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

Создано: 07 октября 2005 19:03
· Личное сообщение · #1

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



Ранг: 45.7 (посетитель)
Активность: 0.050
Статус: Участник
EBFE

Создано: 07 октября 2005 19:16
· Личное сообщение · #2

не там менял




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

Создано: 07 октября 2005 19:22
· Личное сообщение · #3

wildx
Посмотри что происходит при загрузке, что прога с реестром делает, может файлы ищет какие с регистрационными данными, там и меняй уже.

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




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

Создано: 07 октября 2005 22:55
· Личное сообщение · #4

wildx пишет:
теперь проги запускаются вообще без серийника

Мистика...

wildx пишет:
Почему же результат не сохраняется?

Вот результат - то как раз сохраняется. Как пишет 4kusNick - в реестре.
RegOpenKey
RegQueryValueEx

-----
TBR





Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 07 октября 2005 22:57
· Личное сообщение · #5

wildx Интересно как ты так поменял ?
поменял переход и теперь проги запускаются вообще без серийника , но проблема в том что каждый раз при запуске надо ёё типа регистрировать...
Как это тебя понять то ?
Grey Да не то слово Мистика



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

Создано: 07 октября 2005 23:17
· Личное сообщение · #6

Z0oMiK пишет:
Как это тебя понять то

Имхо, имеется ввиду, что выскакивает окно с регистрацией.

Вводит код, 75 -> EB и программа считает себя зарегестрированной и сохраняет "валидный" имя/кей в реестре, но при следуещем запуске проверяет - не ошиблась ли =))
JMP Вводит_код

-----
TBR





Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 07 октября 2005 23:20
· Личное сообщение · #7

Grey Да уж ... Он взломал но прога все ровно просит зарегиться




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

Создано: 08 октября 2005 01:23 · Поправил: 4kusNick
· Личное сообщение · #8

wildx
Вобщем лови все, что с реестром обычно связано и FindFirstFile,CreateFile(EX),OpenFile и т.д. на всяк случай.

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




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

Создано: 08 октября 2005 15:17
· Личное сообщение · #9

У меня похожая история:
пропатчил прогу(занопил переход на плохой MessageBox), после этого она стала принимать любой пароль(при этом улыбаясь и виляя хвостиком). Но дело в том, что перед MessageBox-ом прога мутит с конфигом(файлом). Где конкретно она пишет признак регистрации - я так и не нашел!




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 октября 2005 15:20
· Личное сообщение · #10

Тысячу раз писалось - надо патчить процедуру проверки регистрации, а не переходы...



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

Создано: 08 октября 2005 15:44
· Личное сообщение · #11

Ara пишет:
надо патчить процедуру

Точно. Боротся нужно с причиной, а не со следствием.

-----
TBR




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

Создано: 08 октября 2005 16:01
· Личное сообщение · #12

Ara, Grey
Это понятно. Её найти сложнее. К чему прицепиться? Кстати, во многих статьях описывалась привязка к плохому MessageBox. Так я и делал.




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 08 октября 2005 16:26
· Личное сообщение · #13

4kusNick пишет:
Вобщем лови все, что с реестром обычно связано и FindFirstFile,CreateFile(EX),OpenFile и т.д. на всяк случай.

С реестром говоришь? =)




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

Создано: 08 октября 2005 16:36
· Личное сообщение · #14

Paxan
Обсудили уже...

wildx
Ну как? Понял, в чем суть?

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





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

Создано: 09 октября 2005 14:41
· Личное сообщение · #15

Stranger
Советую цепляться к доступу к тому учатку памяти где храняться введённые данные, так можно будет отловить всё, что прога делает с этими данными.



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

Создано: 10 октября 2005 23:14
· Личное сообщение · #16

Народ, очень Вам благодарен за Ваши советы - иначе новички (чайники как я)чуствуют себя "ежиками в тумане"




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

Создано: 11 октября 2005 00:03
· Личное сообщение · #17

Полагаю, топик можно закрыть. Или кто-то не согласен?

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




Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 11 октября 2005 01:13
· Личное сообщение · #18

Stranger пишет:
во многих статьях описывалась привязка к плохому MessageBox. Так я и делал.

Ara пишет:
надо патчить процедуру проверки регистрации, а не переходы

То есть нужно смотреть, от каких переменных зависит ветвление программы на "плохие MessageBox" и изменять не переходы (их может быть десятки) на MessageBox, а результат проверки регистрации, таким образом, чтобы нужные переменные принимали значение, при которм условные переходы в "плохие места" не выполнятся.

-----
Research is my purpose




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

Создано: 11 октября 2005 03:23
· Личное сообщение · #19

Error_Log
Да я теперь понял. Просто сначала подумал, что Ara пишет о процедуре проверки в начале проги(проверка trial-периода).




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 11 октября 2005 05:33
· Личное сообщение · #20

Stranger
Хмм, ну вроде я так и выразился - патчить процедуру проверки регистрации... Если прога считает себя зареганной, она скорее всего не будет проверять триал %)



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

Создано: 11 октября 2005 19:13
· Личное сообщение · #21

Ara
Хочешь сказать, что прога всегда на старте проверяет RegCodе?
Вообще при проверке введенных данных прога не обращается к реестру и в файл пишутся не валидные
данные, а те, которые я ввел(причем в файл осуществляются две записи, для чего - не знаю). Затем идет проверка ключа(сначала проверяется наличие в ключе символа "-", а потом что-то мутное) и затем
идут переходы на MessageBox.

Как обычно в шароварных прогах делают: RegCode каждый раз проверяется на старте или где-то ставиться признак зарегистрированности??? Если на старте, то как поймать этот момент???



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 11 октября 2005 19:28
· Личное сообщение · #22

Stranger пишет:
RegCode каждый раз проверяется на старте или где-то ставиться признак зарегистрированности???

Может быть и то и другое, обычно первое. Кроме этого, проверка кроме как на старте может происходит в случайный момент времени (например при нажатии какой-то кнопочки).
Stranger пишет: в файл пишутся не валидные данные, а те, которые я ввел Так и должно быть. В самой программе эти данные читаются, преобразовываются (не всегда) и потом с чем-то сравниваются. Твоя задача найти это место и подменить результат проверки...
Stranger пишет: Если на старте, то как поймать этот момент???
Ловить по бряку на чтение того файла, в который записывались те данные, которые ты ввел, и топая от того места, смотреть где как и с чем они сравниваются.

-----
Research is my purpose





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

Создано: 11 октября 2005 21:19
· Личное сообщение · #23

Stranger
Постарайся проследить все манипуляции с теми данными, там может быть множествоконвертаций символов в аски код и обратно (например 1 2 3 4 будет выглядеть как 31 32 33 34 ), причем параллельно эти значения могут заноситься в переменные для последующих операций (+-*xor и т.д.). Могуп помочь ручка и бумага для записи промежуточного кода и последующей сборки всего алгоритма в единое целое. Если это для тебя слишком сложно, то попробуй пройти все эти действие, опять-таки, записывая, что да как, и при переходах на МессажБоксы постараться вникнуть что с чем сравнивается и как эти значения были получены. В результате можно патчем одного байта решить все проблемы, однако, это не всегда решение, т.к. в проге может быть несколько функций проверки или несколько мест, где одна и та же ф-я проверяет валидность введенных данных (она может висеть на таймере еще), в таком случае, лучшим вариантом яявляется поиск такой функции и правка байт уже внутри нее.

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




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

Создано: 11 октября 2005 21:19 · Поправил: Stranger
· Личное сообщение · #24

Error_Log
Так-то оно так. Но писать User и Key в файл, а только потом проверять RegCode, чтобы вывести MessageBox - не логично(совсем не). Хотя, может на это и рассчитано...




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

Создано: 11 октября 2005 23:10
· Личное сообщение · #25

Stranger
Я часто сталкивался с такого рода проверками. Иногда то же самое с реестром - сохранение, затем чтение и генерация с последующей проверкой.

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




Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 12 октября 2005 10:08
· Личное сообщение · #26

Stranger
Это делают для того, чтобы запутать взломщика, который оттолкивается при взломе от считывания текста из эдита. Просто в этом случае после считывания ты увидишь кучу непонятных процедур, в которых нет проверки валидности User и Key, в одной из которых эти данные записываются в файл или реестр (могут попутно еще зашифровать, т.е в файле они уже будут в другом виде). А проверка валидности в некоторых случаях может произойти только после перезапуска программы, при этом данные уже будут читаться из файла/реестра.

-----
Research is my purpose





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 12 октября 2005 11:05
· Личное сообщение · #27

Вобщем-то фантазия программера безгранична, надо смотреть конкретную прогу...



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

Создано: 12 октября 2005 11:16
· Личное сообщение · #28

wildx пишет:
я тут недавно поломал парочку прог...

Дай ссылочку на эти проги. А то получается ишёл туда, не знаю куда, нашёл то - не знаю что.




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

Создано: 12 октября 2005 14:28
· Личное сообщение · #29

Ara пишет:
Вобщем-то фантазия программера безгранична, надо смотреть конкретную прогу...


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

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

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




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

Создано: 15 октября 2005 11:02
· Личное сообщение · #30

Error_Log
4kusNick
Там еще используются анти-deassemble приемы, по-моему "перекрестные ссылки" называются. Это в последней процедуре перед выводом MessageBox. Похоже, это есть проверка ключа, но там так все мутно.


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


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