Вопрос к знатокам ассемблера.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Вопрос к знатокам ассемблера.

Сообщение Павлуша » 08.10.2005 (Сб) 21:28

Написал программу, которая высчитывает какое-то число по определенной формуле.
Вопрос:
Можно ли с помощью дизассемблироваия этой программы узнать какая же формула была использованна для вычислений?
И если можно то как?
Пошли все на фиг, я фея! :flower:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.10.2005 (Сб) 21:38

Теоретически, можно сделать реверс инжиниринг любому алгоритму. Другой вопрос, что сложность задачи зависит от использованного тобой языка. Если ты и писал все это на асме, то тут и думать ничего не надо, а если на VB6, например - совсем другой коленкор.

Кстати, .NET-платформа вся реверсится со свистом, причем чуть ли не штатными средствами.

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 08.10.2005 (Сб) 21:46

Стопудов - писал на ВБ.
Пошли все на фиг, я фея! :flower:

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 08.10.2005 (Сб) 21:55

Что-то я не понимаю... VB - не компилируется в машинный код(?).
Если это точно VB,(проверь PEiD каким-нибудь), то есть программы которые могут декомпилировать... попробуй может получится...

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 08.10.2005 (Сб) 21:58

CheburekV
дело в том, что если бы я знал, как это сделать, я бы попробовал, а я не знаю и поэтому обращаюсь за помощью.
я ведь ваааще не втыкаю в асме (ну только регистры общего назначения назвать могу и некоторые команды назвать).
Пошли все на фиг, я фея! :flower:

CheburekV
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 14.06.2005 (Вт) 21:13

Сообщение CheburekV » 08.10.2005 (Сб) 22:06

Введи в яндексе:"декомпиляция VB"(Это если ты точно знаешь, что прога написана на VB, иначе... ну это совсем другая история..)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.10.2005 (Сб) 22:11

Тут недавно проскакивал вопросик на тему рантайма, так вот: Visual Basic может компилировать в машинный код, но это не то, что вы думаете. Вы думаете, что инструкция вида:
Код: Выделить всё
A = A + 3
при компиляции превращается примерно в следующее:
Код: Выделить всё
...
ADD  AX, 3
...

Так вот: ничего подобного. При компиляции это превращается в машинный код вызова функций рантайма, которые и делают всю эту работу.

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

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.10.2005 (Сб) 22:16

Ennor
Ты просто не умеешь их готовить :wink:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 08.10.2005 (Сб) 23:49

Есть дебагер SoftIce. Думаю с ним нет ничего невозможного. Вот только придется потрудиться... 8)
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.10.2005 (Вс) 8:48

Это, видимо, новый культ такой - вера во всемогущество софтайса? :-/
JohnK, ты его запускал хоть раз, или только название слышал?
Изображение

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 09.10.2005 (Вс) 11:25

Вот пример этой так сказать проги...
я ее поковырял ОллиДБГерром. ничего не понял. ковырял Идой - тоже самое...
Вложения
CheckSum.zip
(4.32 Кб) Скачиваний: 23
Пошли все на фиг, я фея! :flower:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.10.2005 (Вс) 14:20

Процедура вычисления суммы начинается на оффсете 0x2000 (или 0x00402000 с учётом image base).
Кому надо, разбирайтесь, мне неохота...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.10.2005 (Вс) 20:51

А как еще можно считать сумму?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.10.2005 (Вс) 20:59

Вычитанием :lol:
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.10.2005 (Вс) 21:01

Кулхацкеры атакуют! :lol:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.10.2005 (Вс) 23:06

Зачем форум засорять такими листингами? :?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.10.2005 (Пн) 8:04

Вообще, Павлуша, я не думаю что если кто захочет раздобыть твою формулу будет корпеть над АСМом и переводить такие листинги на более понятный язык. Есть такая вешь как Code Ripping, знаешь?... :wink:
А я все практикую лечение травами...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 10.10.2005 (Пн) 9:10

Twister писал(а):Вообще, Павлуша, я не думаю что если кто захочет раздобыть твою формулу будет корпеть над АСМом и переводить такие листинги на более понятный язык. Есть такая вешь как Code Ripping, знаешь?... :wink:


IMHO манией защиты своих программ болеют в основном начинающие...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 10.10.2005 (Пн) 9:34

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

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.10.2005 (Пн) 10:02

Ну а что мешает крякеру дизасмить либы (ну кроме WinAPI)?
А я все практикую лечение травами...

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 10.10.2005 (Пн) 10:08

Twister писал(а):Ну а что мешает крякеру дизасмить либы (ну кроме WinAPI)?


нечего не мешает, но ты вробовал разобраться в проге где одни Goto :lol:
Теория - это когда что-то не работает и известно почему.
Практика - это когда что-то работает, но неизвестно почему.
Нам удалось совместить теорию с практикой, теперь ничего не работает и неизвестно почему.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.10.2005 (Пн) 11:19

нечего не мешает, но ты вробовал разобраться в проге где одни Goto


2 lordOn

Есть такая вешь как Code Ripping, знаешь?...


Не только пробовал, но и писал сам... :wink:
А я все практикую лечение травами...

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 10.10.2005 (Пн) 23:40

tyomitch писал(а):Это, видимо, новый культ такой - вера во всемогущество софтайса? :-/
JohnK, ты его запускал хоть раз, или только название слышал?


Да нет, работать приходилось, а что. Завидуешь?
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

Павлуша
Не годный к строевой
Не годный к строевой
Аватара пользователя
 
Сообщения: 884
Зарегистрирован: 01.01.2005 (Сб) 19:31
Откуда: Смотря кто?

Сообщение Павлуша » 13.10.2005 (Чт) 14:37

Спешу внести ясность!
Это я делал не для защиты. Просто для саморазвития и для развития математики.
а код там вот такой:
Код: Выделить всё
sum = 0
For i = 1 To Len(Text1)
s = Asc(Mid(Text1, i, 1)) / (i + Sqr(Len(Text1) * 135) * Sqr(Cos(Len(Text1) * 1562.635) + i))
sum = ((sum + s) + 99 ^ 3)
Next i
Text3 = Str(sum)
Пошли все на фиг, я фея! :flower:


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 125

    TopList