Сейчас на форуме: localhost1, vsv1, asfa, tyns777 (+5 невидимых) |
eXeL@B —› Вопросы новичков —› Нужен совет, как распознать порядок вычислений программы. |
Посл.ответ | Сообщение |
|
Создано: 11 апреля 2020 15:31 · Личное сообщение · #1 Добрый день. Извините за скорей всего глупый вопрос. Я работаю инженером, но со школы являюсь фаном программирования. В школе я изучал html, php, sql. Потом VBA, VB, C#, а сейчас пишу небольшие программы на C++. А теперь к суте: У меня на работе имеется программа с ключом флешкой, купленная и отлично работает, но у меня есть желание написать то же самое с небольшим изменением (Для меня более удобным). Но, к сожелению в теории есть много решений данных задач, и даже с разными результами. (Теория математической обработки геодезических измерений "ТМОГИ"). Вот мне надо как то определить функции вычислений этой программы. Я в теории знаю что программы можно как то диасемблирить, но не когда этим не занимался и не знаю ассемблер. Я купил вчера ваш видео курс, и сегодня скачиваю. Вот можете подсказать, что мне изучить для более быстрого решения моей проблемы? Заранее большое спасибо, прошу камни в меня не кидать! |
|
Создано: 11 апреля 2020 15:45 · Личное сообщение · #2 zmk пишет: Я в теории знаю что программы можно как то диасемблирить zmk пишет: и не знаю ассемблер чтобы заниматься обратным реверсингом нужно знать ассемблер, без него ни как, а потом брать ida и разбирать программу..... ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. | Сообщение посчитали полезным: zmk |
|
Создано: 11 апреля 2020 15:51 · Поправил: dosprog · Личное сообщение · #3 Если программа запротекчена, то скорей всего перед изучением потребуется её распаковка и отвязка от донгла. Это может оказаться не такой уж простой задачей. Так что сразу к её "изучению" приступить не получится, а когда и если получится, то уже, может, и желание пропадёт. Как наиболее простой вариант - можно попытаться сдампить программу из памяти и уже этот дамп подсунуть в дизассемблер. | Сообщение посчитали полезным: zmk |
|
Создано: 11 апреля 2020 15:53 · Личное сообщение · #4 zmk пишет: программа с ключом флешкой Может получиться так, что нужный тебе алгоритм в этом шайтан-свистке исполняется, а в программе его не будет. Так что зондаж лучше начать с определения модели этой "флешки". Либо сразу забить. ----- 2 оттенка серого | Сообщение посчитали полезным: zmk |
|
Создано: 11 апреля 2020 15:59 · Личное сообщение · #5 zmk пишет: Но, к сожелению в теории есть много решений данных задач, и даже с разными результами Перебрать все решения и сравнить результаты с тем, что выдает программа, будет намного проще, чем реверсить ее. Особенно если "не знаю ассемблер", "никогда этим не занимался" и "программа с ключом-флешкой". | Сообщение посчитали полезным: zmk |
|
Создано: 11 апреля 2020 16:03 · Поправил: BiteMoon · Личное сообщение · #6 Изучайте ассемблер,исследуйте свою программу под отладчиком и/или дизассемблером...без этого ни как,а чтобы быстрее пишите в тему поиска специалистов,они справятся,Вам не придётся заморачиваться,правда спецы сделают за денежку... | Сообщение посчитали полезным: zmk |
|
Создано: 11 апреля 2020 17:17 · Личное сообщение · #7 Оу. Спасибо большое за такие быстрые ответы. Благодарен каждому, я даже и не думал что формум настолько жив! ClockMan Знать асемблер на каком уровне? Можно ли подобраться к этому навыку за 1-2 месяца? Может какие то действенные учебники можешь подсказать? (сейчас с карантином много времени у меня появилось) f13nd, Думаю что нет. ключ именуется в диспетчере устройств как Guardant Stealth II USB. rmn К сожелению на это уйдёт очень много времени, так как задачи зависят от множества различных параметров. Я закончил вуз, и мы разбирали вручную, некоторые типы уравниваний, на примерах простых задач. Я столько исходных данных не смогу придумать что бы учесть все ньюансы. Расчеты затрагивают тему теории вероятности. Я поэтому и спрашиваю, стоит ли попытаться разобраться в этом, возможно такие навыки пригодяться в будущем. BiteMoon Я бы конечно оплатил бы за это, но острой необходимости в этом нет, так как программа куплена, и все работает. А это просто некая моя хотелка, создать более удобное для меня приложение, с дальнейшим усовершенствованием. Пишу на С++, чисто для души, как хобби. Ещё раз спасибо всем ответившим! Добавлено спустя 11 минут P.S. У меня тут ещё небольшие проблеммы с интернетом, поэтому до сих пор качаю видеокурс приобретенный на этом сайте. Там вроде есть раздел Реверсинг и уроки Асемблера. Может, те кто ознакомлен с этим курсом, может подсказать. Достаточно ли этого будет для достижения этой цели? |
|
Создано: 11 апреля 2020 18:50 · Личное сообщение · #8 Самый простой способ научиться реверсу, а заодно и выучить ассемблер, это взять свою программу на С++ и дизассемблировать её. Начинать нужно с дебаг версии программы, когда по асм коду сможешь восстановить исходный код своих функций, то дизассемблируешь релиз версию и смотришь как изменился код. Заодно изучишь как выглядят конструкции языка С++ на ассемблере. Но для приличного реверса чужих программ этого мало, нужно понимать на каком языке и с использованием каких библиотек (в том числе гуи) написана программа, т.к. реверсить придется в этот язык и эту среду исполнения. А реверс одного языка/системы в другой язык/систему это не для начинающих. ----- Everything is relative... | Сообщение посчитали полезным: ex_DMA, zmk |
|
Создано: 11 апреля 2020 19:51 · Личное сообщение · #9 |
|
Создано: 11 апреля 2020 21:53 · Поправил: ASMiral · Личное сообщение · #10 |
|
Создано: 11 апреля 2020 23:17 · Личное сообщение · #11 |
|
Создано: 11 апреля 2020 23:36 · Личное сообщение · #12 1-SDK Ну не совсем. Это не стоит того, что бы я заплатил за решение задачи. А тут я, для так сказать для саморазвития, я не спрашивал конкретный метод решения задачи, я поинтересовался для того, что бы понять смогу ли я это осилить и на что впервую очередь мне стоит уделить своё внимание. (Между прочим, за видеокурс я заплатил). Просто сейчас карантин, и появилось время для саморазвития. Исходя из ваших советов я сделал вывод, что для начала надо изучить ассемблер, затем уже подходить к изучению реверсинга. Ну и теперь, я знаю живой форум, где мне погут помочь если возникнут вопросы при изучении. Ещё раз, всем большое спасибо! |
|
Создано: 12 апреля 2020 00:12 · Личное сообщение · #13 |
|
Создано: 12 апреля 2020 00:18 · Личное сообщение · #14 |
|
Создано: 12 апреля 2020 00:48 · Личное сообщение · #15 zmk пишет: ClockMan Знать асемблер на каком уровне? знать его надо хорошо и иметь под боком мануал по опкодам, можно взять интелловский от zmk пишет: Может какие то действенные учебники можешь подсказать? Я Учился по книге ASSEMBLER(В.И.Юров), ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. | Сообщение посчитали полезным: zmk |
|
Создано: 12 апреля 2020 03:02 · Личное сообщение · #16 ClockMan пишет: знать его надо хорошо и иметь под боком мануал по опкодам, можно взять интелловский Зачем хорошо? Сейчас ида есть с декомпилятором, чтобы понять что делает программа из под компиля достаточно знать совсем чучуть. Тем более маны интела, там новичок ногу сломит, есть куча более читаемых источников, хотя по большому счету все они взяты оттуда. Сейчас насоветуете челу, а он после будет до сблева это вкуривать, когда ему все и не пригодится сразу. ----- В облачке многоточия |
|
Создано: 12 апреля 2020 06:29 · Личное сообщение · #17 zmk пишет: Теория математической обработки геодезических измерений "ТМОГИ" хз чем тебе тут поможет дизасм и знание асма, если математические выражения очень сложные. это алгоритмы, на асме это ипать как растянуто. не уверен, что и декомпиль поможет. вот книжку читай, переноси математику на ЯП, от этого пользы больше, и уже будет твоё. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 12 апреля 2020 08:48 · Личное сообщение · #18 Понять математическую модель по дизассемблированному коду - это все равно что научиться лечить человека, разрезав его на кусочки. Обычно делают наоборот - сперва изучают матмодели а потом ищут их реализацию в полученной безумной каше из команд процессора. И да, чаще всего проще самому написать, чем реверсировать готовое, трудозатраты несоизмеримые. |
|
Создано: 12 апреля 2020 10:06 · Поправил: ASMiral · Личное сообщение · #19 _MBK_ пишет: Понять математическую модель по дизассемблированному коду - это все равно что научиться лечить человека, разрезав его на кусочки. По-моему, все еще зависит от квалификации реверсера, на которую больше всего влияет практика, опыт. Понятно, что какому-нибудь новичку проще месяц в шахте отработать, а квалифицированному, опытному специалисту как раз наоборот. _MBK_ пишет: И да, чаще всего проще самому написать, чем реверсировать готовое, трудозатраты несоизмеримые. Золотой серединой, тут наверное будет, это когда код реверсят не очень подробно\дотошно, а просто чтобы понять, что он примерно делает, а потом пишут свой похожий код. |
|
Создано: 12 апреля 2020 20:38 · Поправил: 1-SDK · Личное сообщение · #20 ASMiral Молодой человек а вот имея уже на руках исходный код даже с комент-Ариями правда под дос и чуть для другого диска, вы как знающий за сколько сможете из ассемблера перевести программу в код c++ vb6 win 32 ?.вот код Code:
Доспрог и Клокман сняты с пробега и не участвует в ответе. |
|
Создано: 12 апреля 2020 20:53 · Личное сообщение · #21 |
|
Создано: 12 апреля 2020 21:12 · Личное сообщение · #22 |
|
Создано: 12 апреля 2020 21:33 · Поправил: _MBK_ · Личное сообщение · #23 |
|
Создано: 12 апреля 2020 21:53 · Личное сообщение · #24 1-SDK пишет: mov ah,09 lea dx,BegMsg int 21h Это сильно, давно такого не видел. Хотя так смотрю, а ассемблер то и не изменился почти. zmk, там выше была книга посоветована ClockMan, я её читал лет так цать/пятнадцать назад, стоит в библиотеке, в ней алгоритмы хорошо раскрыты, вроде были даже графы/сортировки и т.п. на ассемблере (:s14, но, по-моему, для новичка сложновато. Рискну предложить Крупника "Изучаем ассемблер". Супер тонкая книжечка, читаемая за обедом, и актуальная до сих пор. Читается как попса, а результат превзойдёт Ваши ожидания) | Сообщение посчитали полезным: 1-SDK, zmk |
|
Создано: 13 апреля 2020 00:53 · Личное сообщение · #25 |
eXeL@B —› Вопросы новичков —› Нужен совет, как распознать порядок вычислений программы. |