![]() |
eXeL@B —› Вопросы новичков —› Всё очень просто или мне это только кажется? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 01 февраля 2014 02:12 · Поправил: VBA · Личное сообщение · #1 Здравствуйте, уважаемые! Решил вот попробовать свои силы в крэкерском искусстве. Конечно, можно крэкми скачивать с сайта и с ними бороться, но это все-таки немножечко не то. Во-первых, там наверняка какие-нибудь серьезные навороты имеются (все-таки их профи писали), которые для новичка не по зубам. А если крэкми совсем уж легкий попадется, без наворотов, то и вообще не интересно как-то ![]() А во-вторых, реальный бой это все-таки реальный бой, а учебная схватка это учебная схватка. Одним словом, решил найти в интернете какую-нибудь старую несломанную программульку и попытаться превозмочь ее защиту. Почему старую? Ну думал, что там защита должна быть попроще. Прогресс ведь не стоит на месте ![]() Начал искать, но очень быстро понял, что взялся за безнадежное дело. Все уже давным давно сломано-переломано, позади выжженная земля ![]() Тогда решил, ну ладно, не получилось найти старую прогу, возьмусь за какую-нибудь современную. Конечно, защита там будет сильная, современная, но все равно это хоть будет настоящий бой, а не учебный. Стал искать "жертву". Оказалось, что это тоже не самое легкое занятие. Гуглил примерно так: "платные программы", "shareware", "trial", но на все мои запросы находилось только всё бесплатное. Наконец, мне посчастливилось ![]() ![]() Автор - американец с бородой и с юмором ![]() ![]() Засунул, значит, я прогу этого бульдозериста в Peid. Мне там сказали, что не знают, на каком языке она написана и вообще она Overlay. Сначала я был уверен, что она должна быть упакована. Запустил ее под отладчиком. Вроде бы не упакована. Начал в ней ковыряться. Чувствую, не хватает мастерства. Установил ее 6 дней назад. Тогда было написано, что осталось 30 дней. Сейчас написано, что осталось 24 дня. Сначала думал, что эта прога хранит инфу в реестре или в файле каком-нибудь своем. С помощью Trial Reset удалил все подозрительные ключи. Всё равно дядька на бульдозере пишет мне, что осталось 24 дня. Ну думаю, большой коммунистический тупик ![]() Ан нет. Решил попробовать общеизвестный приемчик. Отвел системное время на 6 дней назад. Дядька мне пишет, у вас осталось 30 дней. Ага, капиталист проклятый, нашел я твою ахиллесову пяту! ![]() Ради прикола отвожу системное время на 2000-ой год. Дядька мне пишет, что у меня в запасе еще 5000 дней!!! ![]() Одним словом, как я понял, программа просто считывает системное время с помощью GetSystemTime, а потом сопотавляет его с тем временем, когда она была установлена. Разность этих двух дат как раз и дает нам остаток времени, отпущенный бесплатному юзеру. Эта функция (GetSystemTime) вызывается из 3-х разных мест кода. Теперь у меня вопрос к клубу знатоков ![]() Вот если я прослежу в дебаггере, какое значение возвращается в регистр eax после выхода из этой функции и пропатчу прогу так, чтобы она эту функцию вообще не вызывала, а просто ноп, ноп, ноп и пихаем в регистр eax то значение, которое она возвращает сегодня. Тогда получится, что для этой проги время как бы застопорится на сегодняшней дате, и она всегда будет мне показывать, что осталось 24 бесплатных дня и таким образом получится вечный trial. Правильно я рассуждаю или нет? Разумеется, если я буду переустанавливать операционку и/или эту программу, то придется перепатчивать оригинальный вариант на то время, которое будет актуально. P.S. И еще такой вопрос, не связанный с предыдущим. А может запущенная программа менять свой собственный EXE-шник, ну в смысле, патчить саму себя или Windows не разрешит ей это сделать? ![]() |
|
Создано: 01 февраля 2014 02:27 · Личное сообщение · #2 |
|
Создано: 01 февраля 2014 02:45 · Личное сообщение · #3 VBA пишет: P.S. И еще такой вопрос, не связанный с предыдущим.А может запущенная программа менять свой собственный EXE-шник, ну в смысле, патчить саму себя или Windows не разрешит ей это сделать? может. в памяти со своим процессом можно делать всё что угодно. тут зависит от фантазии автора по поводу первого очень краткого вопроса - читайте статьи "введение в крэкинг с нуля" (есть в разделе для новичков) - и, как сказал plutos - куча вопросов отпадут сами собой ![]() |
|
Создано: 01 февраля 2014 03:04 · Поправил: VBA · Личное сообщение · #4 Спасибо за ответы! tihiy_grom пишет: может. в памяти со своим процессом можно делать всё что угодно. тут зависит от фантазии автора Да нет, то что в памяти может делать все что угодно, это понятно. Я имел в виду, патчить свой собственный EXE-шник на диске. plutos пишет: ...начните с туториалов Нарвахи и куча вопросов отпадет. tihiy_grom пишет: ...читайте статьи "введение в крэкинг с нуля" (есть в разделе для новичков) - и, как сказал plutos - куча вопросов отпадут сами собой Ну так читаю же! ![]() ![]() Ну вот по ходу изучения и пришла эта мысль про патч, заменяющий вызов функции GetSystemTime нопами и жестким возвратом в eax того значения, которое она возвращает сегодня. Прокатит такой вариант или могут быть какие-то подводные камни? P.S. plutos пишет: Да, и правда, "КРАТКОСТЬ - СЕСТРА ТАЛАНТА" (А.П. Чехов) Я долго молчал, ну вот оно и накопилось ![]() ![]() |
|
Создано: 01 февраля 2014 04:36 · Поправил: plutos · Личное сообщение · #5 |
|
Создано: 01 февраля 2014 06:23 · Поправил: dosprog · Личное сообщение · #6 |
|
Создано: 01 февраля 2014 08:49 · Поправил: DenCoder · Личное сообщение · #7 GetSystemTime не возвращает никаких значений! И правда, и пока это писали, и пока думали, что написать - могли бы уже что-то попробовать ----- IZ.RU ![]() |
|
Создано: 01 февраля 2014 10:05 · Личное сообщение · #8 > Всё очень просто или мне это только кажется? Вам это только кажется, из за низкого уровня знаний. Увидели вы что поведение софтины зависит от времени, поэтому посмотрели на импорт и нашли соответствующую апи. После этого сделали вывод что всё такое простое. ![]() |
|
Создано: 01 февраля 2014 10:34 · Личное сообщение · #9 VBA пишет: Я имел в виду, патчить свой собственный EXE-шник на диске. Если процессу доступно повышение привелегий(из под админа был запущен), то, в принципе, ничего не мешает получить SE_BACKUP_PRIVILEGE и подменить целевой файл. Правда, это действие, чем-то напоминает "пилить сук, на котором сидиш". И вообще, Вам правильно сказали: начните там, где уже все обкатано, расписано и обработано напильником - туториалы, кракми, WinRAR с его триалом и тд К тому же, ник VBA намекает на чем Вы сейчас "программируете" и почему, в итоге, все так плохо. (Хотя это может просто совпадение) ![]() |
|
Создано: 01 февраля 2014 11:22 · Личное сообщение · #10 |
|
Создано: 01 февраля 2014 18:40 · Личное сообщение · #11 а что мешает проге сделать другой exe, запустить его? который убьёт её процесс и пропатчит файл... и права админа никому не нужны ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh ![]() |
|
Создано: 02 февраля 2014 01:10 · Поправил: dosprog · Личное сообщение · #12 Isaev пишет: а что мешает проге сделать другой exe, запустить его? который убьёт её процесс и пропатчит файл... и права админа никому не нужны -- Видел пару программ, ещё из 90-х, которые таким образом осуществляют запись в свой же екзек введённых регистрационных данных и привязку к компьютеру. Но это не то, - патчится не тот файл, из которого запущен процесс. Хотя, как выход... Убивать процесс не нужно. Он записывает "дочерний" файл, запускает его, а сам завершается, давая пропатчить собственный екзек. При следующем запуске - удаляет тот "дочерний" екзек на диске, если он не запущен. --ADD-- К следующему посту: Dr0p, да, плохой метод. Поэтому производители софта и не пользуются им для своих регистрационных штучек. ![]() |
|
Создано: 02 февраля 2014 10:55 · Личное сообщение · #13 |
|
Создано: 03 февраля 2014 17:43 · Поправил: VBA · Личное сообщение · #14 Всем спасибо за такое насыщенное обсуждение. Честно говоря, даже не ожидал. Одним словом, не справился я с этой прогой, не по зубам мне этот бульдозерист оказался ![]() А то что это совсем не так просто, в этом я и не сомневался. Но мысль пропатчить вызовы функции GetLocalTime (а там именно эта функция фигурирует, а не GetSystemTime, как я ошибочно написал выше) ну очень сильно напрашивалась, поэтому я и спросил об этом. Любопытная деталь, все 3 вызова этой апишной функции, которые фигурируют в данной проге, расположены очень близко друг от друга. Хотя, я разумеется, прекрасно понимаю, что редкие программы выбирают прямые пути для выполнения своего кода ![]() ![]() Code:
Ну вот, как видите, все 3 вызова здесь как на ладони. Я, конечно же, поставил брейкпойнты на все 3 вызова. Сначала прога тормознулась на самом первом. Дальше я пошел пошагово. После прохождения вот этого участка Code:
в затронутых регистрах лежало: Code:
То есть, как не трудно заметить, это сегодняшнее число, а именно 3 февраля 2014 года. Ну это сегодня там это лежит, когда я этот пост пишу и по этому случаю снова запустил прогу под отладчиком. А в другие дни высвечиваемая этими регистрами дата была другой, но всегда соответствовала именно текущей дате. Вот потому-то и возникло желание жестко вставить туда эти значения безо всяких вызовов апишных функций ![]() Но еще раз повторюсь, я прекрасно понимал, что это не может быть так просто. Со дня написания статьи о взломе Blue Face прошла уже уйма времени. А прогресс не стоит на месте ![]() Извините, отвлекся. После дальнейшей трассировки выяснилось, что программа как-то странно петляя, уходит куда-то, но потом снова несколько раз проходит через это же самое место, в смысле, снова вызывает эту же самую функцию на тех же самых строках кода. Потом, наконец, она отвязывается от этого места и идет дальше, а именно, ко второму вызову этой функции. Там снова после вызова в вышеперечисленных регистрах оказываются значения, соответствующие сегодняшней дате. Но здесь программа не циркулирует несколько раз, как в первом случае, а проходит только один раз, после чего появляется окно программы, и она ждет дальнейших действий пользователя. Ну и дебаггер тоже, разумеется, останавливает трассировку. Иными словами, пропатчить первые 2 вызова не составило проблем, и я это сделал ![]() А вот как быть с третьим вызовом? Как я ни пытался, программа упорно не желала заходить на этот брекпойнт. Теперь я думаю, что туда запрограммированы заходы только в довольно редкие моменты, например, в 12:00 каждого дня, и именно там происходит самая важная проверка. Но я решил не сдаваться, и заодно уж (до кучи ![]() Code:
Но ведь трассировкой зайти туда не удалось, поэтому осталось загадкой, что там попадает в регистр eax. Но я все-таки рискнул предположить, что там в этот ригистр пихают значение года, т.е. 2014. Ну вот именно это значение я туда и "зашил" ![]() Самое интересное, что программа очень долго вела себя именно так, как мне этого хотелось. Как бы я ни играл системным временем, она мне стабильно говорила, что у меня в запасе еще 23 дня триального времени. И, не скрою, все это время я чувствовал себя в роли крутого крэкера, который с такой легкостью устранил защиту первой же попавшейся СОВРЕМЕННОЙ программы ![]() Но, увы, рано или поздно всё кончается ![]() Но я все-таки попытался несколько раз переустановить программу, ну интересно было, что из этого получится. В какой-то момент установки прога неизменно выдавала мне сообщение: "Нам очень приятно, что вам так понравилась наша программа, что вы пытаетесь установить ее снова, но увы, у вас это не получится. Купить прогу можно там-то и там-то". А я за эти дни уже как-то привык к этой проге, и мне уже было очень даже неприятно, что у меня ее досрочно отняли ![]() Ну и тогда я решил позвать на помощь старшего брата, чтобы не в одиночку бороться с этим бульдозеристом ![]() Погуглил "Название проги + скачать бесплатно". В результате нашлось очень много крэков предыдущей версии, но мне уже хотелось именно эту. И вот, наконец, после нескольких осечек нужный крэк нашелся, и прога сразу поумнела ![]() Одним словом, конечно же я еще только новичок в этом деле, и я прекрасно понимаю, что дело это очень и очень трудное. Ну что ж, как говорится, буду учить матчасть ![]() ![]() |
|
Создано: 03 февраля 2014 18:08 · Личное сообщение · #15 VBA пишет: трассировкой зайти туда не удалось, поэтому осталось загадкой, что там попадает в регистр eax Почитал бы ты основы про соглашения о вызовах, что ли. И заодно МСДН о параметрах каждой функции и используемых структурах. ![]() |
|
Создано: 03 февраля 2014 18:28 · Личное сообщение · #16 Archer пишет: Почитал бы ты основы про соглашения о вызовах, что ли. И заодно МСДН о параметрах каждой функции и используемых структурах Да вроде, читал немного. Эта функция значения, как такового, не возвращает, но зато возвращает структуру: год, месяц, день, час, минута и секунда. Эта структура запихивается в память по указанному перед вызовом адресу. Ну а потом оттуда эти данные считываются в регистры, это я уже процитированный код имею в виду. Если я что-то неправильно понял, пусть старшие товарищи меня поправят ![]() ![]() |
|
Создано: 03 февраля 2014 19:15 · Личное сообщение · #17 Как совершенно справедливо тебе рекомендует Archer, "Почитал бы ты основы про соглашения о вызовах, что ли." Скажем здесь: типа __cdecl, __stdcall, __fastcall и т.д. Обе функции GetSystemTime and GetLocalTime в качестве единственного параметра получают: A pointer to a SYSTEMTIME structure to receive the current local date and time. В эту структуру и поступает информация и потом оттуда считывается. "Эта функция значения, как такового, не возвращает, но зато возвращает структуру" Return value: This function does not return a value or provide extended error information. Что тут еще может быть не ясно? И вообще - поменьше воды и эмоциональных описаний своих переживаний. Вся эта образность хороша в школьном сочинении, а тут это просто неуместно. Ни у кого нет времени читать все ваши излияния. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 03 февраля 2014 19:33 · Личное сообщение · #18 |
|
Создано: 03 февраля 2014 19:44 · Поправил: VBA · Личное сообщение · #19 plutos пишет: И вообще - поменьше воды и эмоциональных описаний своих переживаний. Вся эта образность хороша в школьном сочинении, а тут это просто неуместно. Ни у кого нет времени читать все ваши излияния. Хорошо, я больше не буду ![]() plutos пишет: Как совершенно справедливо тебе рекомендует Archer, "Почитал бы ты основы про соглашения о вызовах, что ли."Скажем здесь:-->http://msdn.microsoft.com/en-us/library/k2b2ssfy.aspx<--типа __cdecl, __stdcall, __fastcall и т.д. Эта ссылка у меня не открывается, мне пишут: Forbidden You don't have permission to access /f/-->http://msdn.microsoft.com/en-us/library/k2b2ssfy.aspx<-- on this server. plutos пишет: Обе функции GetSystemTime and GetLocalTime в качестве единственного параметра получают: A pointer to a SYSTEMTIME structure to receive the current local date and time.В эту структуру и поступает информация и потом оттуда считывается."Эта функция значения, как такового, не возвращает, но зато возвращает структуру"Return value:This function does not return a value or provide extended error information.Что тут еще может быть не ясно? Не ясно, в чем наши разногласия. И я говорю ровно то же самое. Вот функция вернула структуру, программист использует возвращенную структуру для определения текущей даты и времени, и запихивает эти значения в 3 регистра. А мы вместо этих значений зашиваем туда удобные для нас константы. Таков был замысел, и я его осуществил. Но там "подводные камни", которые мне пока еще неподвластны. Во-первых, мне так и не удалось добраться до третьего вызова этой функции и посмотреть, что же там окажется в регистре eax после Code:
А во-вторых эта прога, наверняка, пихает нужную инфу в реестр и в какие-нибудь файлы в системной папке. По-хорошему, надо было бы промониторить систему до и после установки этой проги с помощью ФайлМона и РегМона, но мне не терпелось поковыряться внутри этой проги, и я не стал. ![]() |
|
Создано: 03 февраля 2014 19:49 · Поправил: VBA · Личное сообщение · #20 |
|
Создано: 03 февраля 2014 19:55 · Поправил: plutos · Личное сообщение · #21 |
|
Создано: 03 февраля 2014 20:16 · Личное сообщение · #22 plutos пишет: Then do not click on the link. Copy the link and paste it in your browser. Works just fine. Ну да, теперь работает. Хорошо, сейчас почитаю. Но все равно мне очень сомнительно, что я там вычитаю что-нибудь другое относительно сказанного выше, а именно того, что эта функция значения не возвращает, но возвращает структуру. ![]() |
|
Создано: 03 февраля 2014 20:32 · Личное сообщение · #23 Говорить, что : "функция значения не возвращает, но возвращает структуру" - это бессмыслица. Функция не может возвращать "структуру", она может возвращать pointer to structure, адрес структуры в памяти, а коли так, то это будет уже какое-то "значение". Как оно интерпретируется - как адрес или содержимое адреса - это уже другое дело. В данном случае эти функции не возвращают ничего, никаких адресов, никаких структур, а внутри себя используют переданый им в качестве параметра адрес структуры, чтобы поместить туда то, что нужно. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 03 февраля 2014 22:19 · Поправил: VBA · Личное сообщение · #24 plutos пишет: Говорить, что : "функция значения не возвращает, но возвращает структуру" - это бессмыслица.Функция не может возвращать "структуру", она может возвращать pointer to structure, адрес структуры в памяти, а коли так, то это будет уже какое-то "значение". Как оно интерпретируется - как адрес или содержимое адреса - это уже другое дело.В данном случае эти функции не возвращают ничего, никаких адресов, никаких структур, а внутри себя используют переданный им в качестве параметра адрес структуры, чтобы поместить туда то, что нужно. Большое спасибо за разъяснения! Честно говоря, я во всей этой терминологии пока еще не особо силен, поэтому мне как-то даже и не хочется продолжать этот, на мой взгляд, чисто терминологический спор. Какое отношение это имеет к рассматриваемой задаче? Вот оригинальный код: Code:
После выполнения этого участка кода в упомянутых здесь регистрах оказываются значения текущего дня, месяца и года. Я это своими глазами видел в дебаггере, а ведь до выполнения этих команд в этих регистрах были совсем другие значения. Наверно, этот самый LOCAL и есть тот самый пойнтер, о котором вы говорите. Ну а по указанным смещениям (относительно него) как раз и появляются после выполнения этой функции эти самые значения, которые затем помещаются в регистры. Я оставляю вызов этой функции, но вместо считывания значений из памяти по указанным адресам просто вставляю в эти регистры нужные мне значения. Что в этом неправильно? Или вы намекаете, что эту функцию лучше вообще занопить? Или здесь какая-то другая тонкость, которую я никак не могу понять из ваших объяснений? ![]() |
|
Создано: 03 февраля 2014 23:22 · Поправил: dosprog · Личное сообщение · #25 VBA пишет: Или здесь какая-то другая тонкость, которую я никак не могу понять из ваших объяснений? ...у вас же есть готовый кряк. Посмотрите, что он делает, и сделайте правильные выводы. промониторить систему до и после установки этой проги с помощью ФайлМона и РегМона, -- то-есть как промониторить до- и после- ? Эти программы используются именно во время работы интересующего софта. ![]() |
|
Создано: 03 февраля 2014 23:27 · Поправил: tomac · Личное сообщение · #26 Во-первых, после заполнения структуры и копирования значений в регистры, структура никуда не девается. Подменять нужно не значения регистров, а значения в структуре. Можно и вообще GetLocalTime похукать. Во-вторых, программа может использовать другие функции считывания времени. В частности, сообщение о том, что вы играете с системным временем, означает, что у проги есть другие источники информации. Например, она пишет, сколько времени она проработала, и, когда это время переходит за сутки, проверяет, изменилось ли время на компе. В-третьих, process monitor. Покажет, что программа читает, что пишет. Напрасно отказались от него. ![]() |
|
Создано: 03 февраля 2014 23:56 · Поправил: DimitarSerg · Личное сообщение · #27 У меня вопрос: почему новичку начинают объяснять не самый простой (имхо даже немного стрёмный) вариант решения задачи, как для новичка ?! VBA А почему не пропатчить сравнение дат ? Или "мы не ищем лёгких путей" ? add: А для сравнения снимков до и после (чтобы находить скрытые флаги/метки в реестре/файловой системе) советую виртуалку + ThinApp/SysTracer. ----- ds ![]() |
|
Создано: 04 февраля 2014 00:32 · Личное сообщение · #28 DimitarSerg пишет: почему новичку начинают объяснять не самый простой (имхо даже немного стрёмный) вариант решения задачи, как для новичка ?! Я тоже читаю и не пойму какие перехваты структуры? Вы ему ещё длл внедрить посоветуйте. VBA Может ты всё-таки ссылку скинешь? А то у меня третий глаз в отпуске до конца февраля... ![]() |
|
Создано: 04 февраля 2014 03:00 · Поправил: Zorn · Личное сообщение · #29 VBA пишет: Стал искать "жертву". Оказалось, что это тоже не самое легкое занятие. Гуглил примерно так: "платные программы", "shareware", "trial", но на все мои запросы находилось только всё бесплатное. Наконец, мне посчастливилось и я нашел программу своей мечты С ее помощью можно снимать скриншоты с экрана и видео записывать. Триал 30 дней. Регистрация около 40$. Тоже так начинал. Нашел наглого быдлокодера (за 1000$ продавал свое поделие) и безжалостно закейгенил ![]() А что за программа была, даже не вспомню ) ![]() |
|
Создано: 04 февраля 2014 15:53 · Поправил: VBA · Личное сообщение · #30 Djeck пишет: VBAМожет ты всё-таки ссылку скинешь? А то у меня третий глаз в отпуске до конца февраля... Без проблем! И кстати, большое спасибо за эту реплику. А то бывают такие форумы, на которых вообще запрещено давать внешние ссылки, поэтому я сразу и не дал, а потом вроде никто и не просил, если не считать одного письма в личку с тем же вопросом. Вот здесь я ее скачал, когда искал ЛЮБУЮ современную прогу пригодную для крэка и желательно не упакованную: http://www.snapfiles.com/featured/531424-107980.html А вот здесь я ее нашел уже с крэком, когда бульдозерист начал надо мной издеваться ![]() http://skachat-free.ru/11632-capturewizpro-540.html dosprog пишет: ..у вас же есть готовый кряк. Посмотрите, что он делает, и сделайте правильные выводы. Была такая мысль, была... Но это какой-то странный кряк. Первый кряк в моей жизни, который запросил для себя установки дополнительного софта ![]() ![]() ![]() Я это говорю к тому, что кряк написан под виртуальную машину НетФрейм 3.5, а значит мне, как новичку, будет трудно с ним разобраться. По крайней мере, Bad_Guy в своем видеокурсе говорит, что для расшифровки кода виртуальных машин нужно использовать дополнительные программы, если, конечно, я ничего не путаю. Поэтому я в него и не полез. dosprog пишет: VBA пишет: промониторить систему до и после установки этой проги с помощью ФайлМона и РегМона, -- то-есть как промониторить до- и после- ? Эти программы используются именно во время работы интересующего софта. На самом деле, я сейчас уже запутался со всеми этими РегМонами и ФайлМонами ![]() http://exelab.ru/download.php?action=list&n=MTU= что у меня сейчас бушует хватательный рефлекс, и я скачиваю всё подряд, изучаю справочную систему у каждой проги, а если у какой-нибудь (не дай Бог! ![]() http://jacquelin.potier.free.fr/winapioverride32/videos.php Это я к чему говорю? Да к тому, что у меня сейчас в голове "каша" от всех этих программ. Одним словом, я имел в виду, что надо было бы не спешить с установкой, а сначала сделать снимок реестра, потом установить прогу, снова сделать снимок реестра и сравнить, какие ключи изменились. Насколько я могу понять, вот эта вот прога позволяет всё это сделать: "RegSnap - инструмент, который может помочь Вам анализировать изменения, сделанные в реестре Windows. То есть, Вы можете сравнить снимки реестра до и после какого-то действия и узнать, какие ключи были изменены, удалены, или добавлены". И то же самое можно с файловой системой делать с помощью той же самой проги: "Вы можете также анализировать другие чувствительные части системы, типа списка файлов в папке Windows и системной директории. RegSnap может создавать HTML отчёты". На самом деле, я именно про эту прогу писал, что надо было бы ее использовать до и после установки "жертвы". А ФайлМон и РегМон это, конечно, совсем другие программы, но названия уж больно подходящие под ту задачу, которую я имел в виду, потому я и запутался, и не то написал, что надо было ![]() tomac пишет: Во-первых, после заполнения структуры и копирования значений в регистры, структура никуда не девается. Подменять нужно не значения регистров, а значения в структуре. Была такая мысля. Но я так и не смог добраться до этих адресов в Олли. Там написано "SS:[LOCAL.2+2]", а как добраться до этого места в дампе памяти, я не знаю ![]() tomac пишет: Можно и вообще GetLocalTime похукать. Во-вторых, программа может использовать другие функции считывания времени. В частности, сообщение о том, что вы играете с системным временем, означает, что у проги есть другие источники информации. Например, она пишет, сколько времени она проработала, и, когда это время переходит за сутки, проверяет, изменилось ли время на компе. А какие API надо перехватывать, чтобы в этом разобраться? tomac пишет: В-третьих, process monitor. Покажет, что программа читает, что пишет. Напрасно отказались от него. Да ни от чего я не отказался! Просто "каша" сейчас в голове от изобилия всех этих инструментов, которые все очень полезны, и глаза разбегаются, какой лучше выбрать ![]() DimitarSerg пишет: VBA А почему не пропатчить сравнение дат ? Или "мы не ищем лёгких путей" ? Совсем наоборот! Я, как новичек в этом деле, ищу сейчас именно самые легкие пути, но знать бы только где они, а вот этого я как раз и не знаю ![]() DimitarSerg пишет: А для сравнения снимков до и после (чтобы находить скрытые флаги/метки в реестре/файловой системе) советую виртуалку + ThinApp/SysTracer. Спасибо! Обязательно погуглю и установлю. Zorn пишет: Тоже так начинал. Нашел наглого быдлокодера (за 1000$ продавал свое поделие) и безжалостно закейгенил А что за программа была, даже не вспомню ) Что же это за программа должна быть, чтобы за нее такие деньги требовать?! Не иначе как, целая операционная система новая или новый Microsoft Office ![]() ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Всё очень просто или мне это только кажется? |