eXeL@B —› Вопросы новичков —› vb6 - Как найти где инициализируется (глобальная) переменная/константа ? |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 10 марта 2018 09:47 · Личное сообщение · #1 Другая проблема) Есть прога на vb6, не напичкана ничем. Декомпилировал, теперь в Sub Main() нашел переменную (флаг) которая отвечает за версия (демо или полная). В остальных формах проверяется этот флаг, но вот где инициализируется не видно, видно только проверки, типа: .... loc_00658A6A: If var_9C211A Then loc_00658AE1: var_eax = %y 'Ignore this '__vbaChkstk loc_00658B10: var_eax = %y 'Ignore this '__vbaChkstk loc_00658B49: var_eax = frmDemo.Show 1, var_3D8 loc_00658B51: var_58C = frmDemo.Show 1, var_3D8 loc_00658B90: End If .... Вопрос - как можно найти место инициализаций var_9C211A ? |
|
Создано: 12 марта 2018 03:36 · Личное сообщение · #2 |
|
Создано: 12 марта 2018 04:52 · Личное сообщение · #3 дайте и мне свои 2 копейки вставить: difexacaw когда ты сам разберешь N штук всяко разных vb, то поймешь о чем говорит DrVB_5_6, конкретно тебе для понимая хватит несколько дней/недель, зависит от разнообразности этих N vb cryptX к тому что выдает декомпилятор еще надо писать оригинальный код - гадания и срача будет меньше, результат раньше и лучше | Сообщение посчитали полезным: DrVB_5_6 |
|
Создано: 12 марта 2018 09:16 · Поправил: DrVB_5_6 · Личное сообщение · #4 sen пишет: еще надо писать оригинальный код - гадания и срача будет меньше Да если бы этот "товарищ" ещё в 1, а не в 14 посте написал, что есть 2 переменные с одинаковым адресом, но с разными префиксами, то получил бы сразу нормальный ответ. Хотя я ещё во 2 посте дал полный ответ, как надо действовать! Если б ТС ещё предоставил исходник, то я вчера бы не поленился скачать и поставить последнюю версию VBDecompiler. И всё бы стало предельно ясно! Специально для GPcH: Ну не бывает в Visual Basic (5,6) глобальных переменных, есть только переменные модуля. Возможно, что в последних версиях (пару последних не смотрел) уже всё нормально, тогда вопросов нет. |
|
Создано: 12 марта 2018 12:48 · Личное сообщение · #5 rmn пишет: Зачем покупать лицензию А зачем монтажники покупают дорогой инструмент? Перфораторы, пневмоинструмент стоимостью по полсотни тысяч рублей? Они же сами мастера и руки золотые. По вопросу в топике кстати ни слова нет про взлом. И есть огромный процент вероятности что код исследуется на абсолютно легальной основе (малвара в антивирусной компании или пентест). К слову не раз говорил как получить лицензию бесплатно. Только вот желающих что-то делать - ноль. DrVB_5_6 пишет: Ну не бывает в Visual Basic (5,6) глобальных переменных Переменная объявленная как global в любом модуле - доступна всей программе. Всем модулям, формам и классам. Модули разделены только в рамках исходника. В рамках скомпилированного кода, все модули являются общим доступным отовсюду кодом. Функции из любого модуля могут быть вызваны в любой форме или классе без какого то наследования. Это VB, он не такой как Delphi или C++. По сути вопроса - ждем файл. ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 12 марта 2018 13:14 · Поправил: DrVB_5_6 · Личное сообщение · #6 GPcH пишет: Переменная объявленная как global в любом модуле - доступна всей программе. Это верно, точнее, начиная с VB5 используют вместо этого ключевого слова "Public", хотя и с ним прокатит. Довожу до Вашего сведения, что у модуля могут быть так же "Private" переменные, которые физически располагаются сразу же после Public переменных (это не зависит от того, найтив или р-код). И их не мешало бы различать, чего, похоже, VbDecompiler не умеет. Надеюсь, очевидно, что такие переменные доступны только в том модуле, где они объявлены. Речь шла об этом. И я прекрасно знаю, что GPcH пишет: Функции из любого модуля могут быть вызваны в любой форме или классе без какого то наследования. При условии, что они явно не описаны как "Private". Но это к обсуждаемому вопросу никакого отношения не имеет. Кстати, все эти вопросы можем обсудить в личку вечерком, к примеру... |
|
Создано: 12 марта 2018 13:48 · Личное сообщение · #7 DrVB_5_6 Писать что VB Decompiler что-то определяет или не определяет лучше на конкретном примере а не в общем, основываясь на той или иной старой версии. И если что-то работает не так, как хотелось бы - об этом лучше писать мне напрямую. Области видимости функций и процедур декомпилятор берет из структуры, описывающей функцию или процедуру. Именно поэтому декомпилятор работает быстро. Для модулей определить Private/Public у функции в большинстве случаев не предоставляется возможным. Вообще поиск функций, входящих в Native модули это целый квест сигнатурного анализа, разделения принадлежности того или иного кода к тому или иному модулю. Область видимости модульных функций в Native Code можно определить только анализом референсов на каждую функцию по всей программе. Я думаю не стоит говорить как быстро это будет работать для сколь нибудь больших проектов и как "часто" это бывает нужно. К слову референсы декомпилятор уже ищет начиная с версии 10.8. ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 12 марта 2018 14:13 · Поправил: DrVB_5_6 · Личное сообщение · #8 GPcH пишет: Области видимости функций и процедур декомпилятор берет из структуры, Да вообще тема не об этом. Что ты уезжаешь в сторону. Речь об области видимости переменных. Более того, переменных модулей и только! У ТС были заморочки с тем, что был адрес одинаковый, а префикс разный (var и global). Я раньше писал, что это было в старых версиях, новые я не смотрел. Я не знаю, что он там мучает. Я у себя определял префиксы след. видов (как они есть): 1). var_ - локальная переменная процедуры (находится во фрейме этой процедуры). 2). mod_address - переменная уровня модуля, в котором она определяется. Она как раз может быть как "Public" так и "Private". Располагается всегда по тому адресу. Всё! Других просто нет! Ну можешь обзывать "Public" переменные "global_....", но это должно быть одинаково во всех контекстах. Проверить я на работе всё равно никак не смогу, так что если и есть что-то, только вечером... |
|
Создано: 12 марта 2018 14:22 · Личное сообщение · #9 DrVB_5_6 пишет: У ТС были заморочки с тем, что был адрес одинаковый, а префикс разный (var и global). Я и говорю - нужен файл. Без него непонятно на чьей стороне ошибка. А с файлом уже будет что всем обсуждать. Я на прошлой странице предположение сделал что это за адрес и откуда. ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! |
|
Создано: 12 марта 2018 19:58 · Личное сообщение · #10 rmn А зачем вы тогда взяли ломанный декомпиль? Тогда уже как Клерк говорит - дебаггером пользуйтесь и всё, больше ничё не надо. ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: difexacaw |
|
Создано: 12 марта 2018 20:41 · Личное сообщение · #11 ARCHANGEL В обсуждение вроде же элементарного вопроса втянули кучу людей. И лишь из за одного по факту вопроса - какого типа область памяти - R/W. Между тем выяснение этого вопроса заняло бы десятки секунд в отладчике. При этом тс не участвует в обсуждении, что некоторые мысли вызывает и подозрения. ----- vx |
|
Создано: 12 марта 2018 21:04 · Личное сообщение · #12 difexacaw пишет: При этом тс не участвует в обсуждении, что некоторые мысли вызывает и подозрения. Чувак, да у тебя паранойя.. Может, ТС читает, изучает, анализирует, не плодя не нужных вопросов и пустых анализов.. | Сообщение посчитали полезным: cryptX |
|
Создано: 12 марта 2018 21:16 · Поправил: difexacaw · Личное сообщение · #13 sefkrd Пустой и даже глупый анализ был бы лучше чем его отсутствие. А так весьма похоже на намеренное поднятие анализа. Данная тема основана на отсутствии инфы, при этом она прямая задача при отсутствии исходных данных, я вижу это как какой то сомнительный тест или что такое. И это не паранойя. Сами посмотрите. Просто невозможно такое обсуждать столь долго, без чётких вещёй, семплов или подобного, лишь в случае каких то тестов. Возможно что тс по какой то причине не доступен всё это время, но думаю это даже нет смысла проверять. ----- vx |
|
Создано: 12 марта 2018 21:22 · Личное сообщение · #14 |
|
Создано: 12 марта 2018 22:04 · Поправил: DrVB_5_6 · Личное сообщение · #15 ARCHANGEL пишет: Тогда уже как Клерк говорит - дебаггером пользуйтесь и всё, больше ничё не надо. Вообще-то это я ещё во 2 посте (https://exelab.ru/f/action=vthread&forum=5&topic=25091&page=0#2) написал, что надо просто посмотреть в любом отладчике! difexacaw пишет: А так весьма похоже на намеренное поднятие анализа. Он чаще всего пишет подобный бред!.. Что бы это значило? Может кто-нибудь растолкует! difexacaw пишет: В обсуждение вроде же элементарного вопроса втянули кучу людей. И лишь из за одного по факту вопроса - какого типа область памяти - R/W. Вообще-то надо хотя бы прочитать название темы, из которого следует, что вопрос всего навсего об результатах работы VbDecompiler. Ну надо же быть последним идиотом, чтоб так "перевернуть" вопрос, как это изобразил выше difexacaw. Если выкинуть все его бестолковые (как всегда) посты, останется всего пару постов, где всё уже полностью объяснено! Не удивлюсь, если дальше начнётся базар про всякие "моторы", то ли "виксы", то ли "фиксики" и прочую хрень, абсолютно не относящуюся к теме. Уже жалею, что вообще связался с этим "двоешником", надо было, как всегда не обращать на его бестолковые посты внимания, тем более, что он в этой теме примерно, как белый медведь в апельсинах, рассекает. Думал человек разобраться хочет. Да куда там. Для него название темы-то похоже неподъёмное!!! Аминь! P.S. ответ был полностью дан ранее: DrVB_5_6 пишет: Если цифры (адрес) совпадают - то это одна и та же переменная уровня модуля, какой бы там префикс бы ни был. (var_9C211A это одно и то же, что global_9C211A). ТС должен быть счастлив, а обсуждение просто ушло в сторону. Может ТС объявится и просто закроет топик, пока до "фиксиков" не дошло!!! |
|
Создано: 12 марта 2018 22:34 · Поправил: sefkrd · Личное сообщение · #16 |
|
Создано: 13 марта 2018 01:36 · Личное сообщение · #17 DrVB_5_6 > Он чаще всего пишет подобный бред!.. Что бы это значило? Может кто-нибудь растолкует! Обьясняю. Есть большое количество всяких тролей, которые запускают такие обсуждения, желательно как можно с большим расскрытием инфы для них. Это позволяет выяснить скрытую инфу, проработать" человека. Учитывая контент подобных ресурсов это всегда должно настораживать. Именно что использована не определённость, вброс инфы на обсуждение, которую проверить нельзя, а можно лишь с некоторой вероятностью теоретически обсудить как раз и вызывает эти подозрения. Тс в нормальной ситуации мог либо посмотреть отладчиком, либо что то ответить, а так получается что это эти самые тесты. И то что вы пишите и так раздули тему, это лишь на основе моего логического предположения в начале темы. Так что нужно всегда смотреть на автора, а не только на вопрос, который он поднимает. Добавлено спустя 20 минут DrVB_5_6 > идиотом, чтоб так "перевернуть" вопрос, как это изобразил выше difexacaw. На блэк площадках есть обьявки про разработку людей и всякие разные тесты, вы просто не знаете. Поэтому странное поведение вызывает подозрение. Они такое вбрасывают а потом наблюдают. И это не пранойя Тс должен был ответить в самом начале, дав нужную инфу, он это не сделал и по мойму не просто так. Хотя может я ошибаюсь, тогда сорян, но мне кажется это подозрительным. ----- vx |
|
Создано: 13 марта 2018 09:05 · Поправил: DrVB_5_6 · Личное сообщение · #18 difexacaw пишет: Поэтому странное поведение вызывает подозрение. Да хрен с ним! Лично для меня техническая сторона понятна. С апреля 14 года уже не занимаюсь этими вопросами, повспоминал хоть немного... Даже с GPcH пообщался и в том числе в личке, а не только здесь на форуме. А то всё какие-то другие дела. Давненько мы с ним не пересекались. Так что всё отлично! Удовлетворение получил, да и ладно!!! | Сообщение посчитали полезным: GPcH |
|
Создано: 18 марта 2018 21:48 · Поправил: cryptX · Личное сообщение · #19 Извеняюсь за долгое молчание, был перегружен...место инициализаций нашел: Code:
окозалось там свитч с 41 кейсами...но vb декомпилер (v10) молчит про это все...буду копать дальше. Пока что незнаю это результат от CreateObject() или нет....посмотрю и обновлю топик. И да при моем случае декомпилятор "более" нормально работает без опций "Procedure analyze and optimizer", но все равно свитч с кейсами потерен при декомпиляций. Все разобрался. 9C211A брала свое значение из другой переменный... Code:
Декомпилятор не смог найти место присвоения (9C211A = 9C20D4) Тема закрыта, спасибо всем. |
<< . 1 . 2 . |
eXeL@B —› Вопросы новичков —› vb6 - Как найти где инициализируется (глобальная) переменная/константа ? |
Эта тема закрыта. Ответы больше не принимаются. |