Сейчас на форуме: bartolomeo (+4 невидимых)

 eXeL@B —› Вопросы новичков —› "Всё болит, ничё не помогает!" AutoCAD Electrics
Посл.ответ Сообщение

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

Создано: 30 мая 2006 00:28
· Личное сообщение · #1

Здравствуйте!

Позвольте задать несколько вопросов, а то уже опух просто..

Суть - есть присоска к AutoCAD, наш отечественный ElectriCS и с ним же MechaniCS, куча библиотек, долго разбирался с чего начать...

Бед в нём много, но одна особенно противная, когда в автокаде пытаешся при помощи мекэникса нарисовать 4-ый по счёту примитив выскакивает MessageBox с предложением перезапустить автокад. Причём кэпшн у этого окошка "AutoCAD Message".

Выяснил по характерным строчкам что всё писано на дельфях (сам очень давно на них пишу), но многие строчек, связанные с регистрацией и DEMO-ограничениями по ходу зашифрованы.

Сам основной экзешник серийник читает из реестра. Несколько раз его как-то с чем-то сравнивает мутит что-то... Но это всё ладно, единственное страстное желение - убрать гадский MessageBox.. с серийником как-нибудь потом.


Проблема - ну никак не срабатывают bpx MessageBoxA (а окошко именно этой функцией выводиться, API Monitor тому свидетель). Вообще bpm, bpmb тоже не срабатывают и тут супер бпм не помогает. Сама присоска явно из длл-ки. Никакие функции не отлавливаются - ни ShowWindow, CreateWindowExA etc..

В то время как на том же SuperDVD ripper GetWindowTextA срабатывают чудно...

В чём тут беда??


ЗЫ Система XP SP2, при установке патчей к софтайсу отладчик страшно гребёт - по ктрл-Д просто система замирает а при повторном ктрл-Д - отмирает, а кошко софтайса не вылазит... Очень буду рад советам.



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

Создано: 30 мая 2006 04:59
· Личное сообщение · #2

n48
попробуй юзать OllyDbg( www.ollydbg.de/ )



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

Создано: 30 мая 2006 08:27
· Личное сообщение · #3

спасибо, парадокс, но минут через 20 после отсылки этого топега в Оле поймал тот MessageBox... но тули холку! MessageBox вызывается уже в модуле Acad.exe, я пуши и сам вызов NOP-ами забил, это ничего не дало, окошко конечно не выводится. а как нельзя было больше трёх примитивов нарисовать так и осталось...

Может вопрос ламерский, но как узнать ИЗ КАКОГО модуля и КАКИМ кодом вызывается та процедура в самом автокаде которая этот гадский MessageBox выводит?

Хотя бы с чего начать?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 30 мая 2006 10:24
· Личное сообщение · #4

n48 пишет:
Хотя бы с чего начать?

forum.lavteam.com/ Там если хорошо поискать и попросить - все найдешь(уже сломанное).
Там и про dll что-то написано.



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

Создано: 30 мая 2006 15:16
· Личное сообщение · #5

это шутка? Там вроде даже в разделе программирование какие-то странные вещи спрашивают...


Всё-таки, никто не откроет секрет: как узнать откуда был сделан вызов, при условии, что он был сделан явно из длл-ки?



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

Создано: 30 мая 2006 15:45
· Личное сообщение · #6

PS косяк, виноват, глаза разул поглядел... но там никакой конкретики... да, крутые гуру парят над землёй, и с закрытыми глазами ломают всё что угодно... мне не нада ломать всё - только ограничение по количеству нарисованных примитивов снять....



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 31 мая 2006 13:49
· Личное сообщение · #7

n48 пишет:
я пуши и сам вызов NOP-ами забил, это ничего не дало,

Ну так думать надо. Надо смотреть почему программа сюда попадает, т.е. искать перед этим вызововом проверки и JMP-ы и их править/нопить.



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

Создано: 31 мая 2006 18:36
· Личное сообщение · #8

да это совершенно понятно, беда в том, что вызывается сия процедура, что в модуле acad.exe из dll-ки MechaniCS.dll судя по всему...

Я прошу совета, КАК отследить, ОТКУДА производится вызов! Если бы вызов из того же модуля был и сам бы справился виндасмом каким-нибудь..

В каком направлении копать?



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

Создано: 31 мая 2006 23:24 · Поправил: rep0A
· Личное сообщение · #9

n48 пишет:
Я прошу совета, КАК отследить, ОТКУДА производится вызов

Бряк на MessageBoxА, Debug->Trace into, бряк сработал, теперь нажимая на серый минус (на цифровой клавиатуре) можно идти пошагово назад.



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

Создано: 01 июня 2006 00:53
· Личное сообщение · #10

Esse homo! Я возрадован!

ЗЫ Это в оле?



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

Создано: 01 июня 2006 11:37
· Личное сообщение · #11

n48 пишет:
Это в оле?

да



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

Создано: 01 июня 2006 12:46
· Личное сообщение · #12

ну я просто олей пользовался очень мало - 2 раза. %) И потом так не получается, назад пошагово только в пределах модуля acad.exe, в dll не идёт %((

Заимелся... может как-нибудь ссылку на адрес поискать...



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

Создано: 01 июня 2006 23:06
· Личное сообщение · #13

n48
А что если просто жать F8?
Вроде как постоянно выходишь из процедур и когда-нибудь должен оказаться в нужной тебе dll. Или я что-то не понял?



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

Создано: 01 июня 2006 23:54
· Личное сообщение · #14

ну я конечно терпеливый человек, но после 40 минут такого ананизма я потерял надежду в обозримом времени наткнутся на нужный код... и не надо смеятся..

Не, ну а в самом деле... не верю, что никто не знает!



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

Создано: 02 июня 2006 01:31
· Личное сообщение · #15

n48
Тогда попробуй идти от функции рисования примитива. Бряк можно ставить также (bp [name]). Если не знаешь имя, посмотри в любом PE редакторе (например PE Tools) секцию exports (в Derictories).

Ещё после бряка на MessageBoxA можно попробовать поставить бряк на всю секцию кода dll: Alt+M, выбираешь секцию кода, F2, F9.



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

Создано: 02 июня 2006 10:49
· Личное сообщение · #16

Спасибо, попробую.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 02 июня 2006 14:04
· Личное сообщение · #17

n48 пишет:
когда в автокаде пытаешся при помощи мекэникса нарисовать 4-ый по счёту примитив выскакивает MessageBox с предложением перезапустить автокад.

Все-таки поподробнее : какое сообщение. Может просто сбой и регистрация тут не причем. Я посмотрел MechaniCS.dll - там куча MessageBox, куча строчек "demo". Поэтому слабо верится, что именно для лицензии идут в acad.exe
При создании примитивов скорее всего используется MCSAcadGate.dll там всего одна текстовая строка 'MCSHLPrimitive' - ее кладут на стек - в IDA последовательность вызовов достаточно позрачная. Наверное и в олли можно увидеть это.
Кстати, MechaniCS разве не flexlm использует для лицензирования ?!



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

Создано: 02 июня 2006 19:47
· Личное сообщение · #18

Это не та версия. У меня ElectriCS 4.0, с ним и механикс.

Сообщение такого рода: "Превышен лимит операций для текущего сеанса работы! Перезапустите MechaniCS/ElectriCS!"

Строк текстовых такого рода там нет (конкретно этих).

Это демо версия Электрикса с которой инсталлица и меканкс. Нет никакой необходимости ебцтись с флекслмом, нужно просто чтоб не стало вдруг ограничений на кол-во операций %).

И это сообщеньице ловиться в Olly. Вызов 99% приходит из библиотеки механикса.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 03 июня 2006 12:56
· Личное сообщение · #19

n48 пишет:
Строк текстовых такого рода там нет (конкретно этих).

Строки там в основном в Юникоде все. Может поэтому ты и не находишь их ?!
=====================
Автокад у тебя какой? У меня есть 2004 и 2005. Если выложишь свой Электрикс - буду смотреть дальше.
n48 пишет:
Нет никакой необходимости ебцтись с флекслмом, нужно просто чтоб не стало вдруг ограничений на кол-во операций %).

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



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

Создано: 04 июня 2006 03:32
· Личное сообщение · #20

tundra37 пишет:
Строки там в основном в Юникоде все. Может поэтому ты и не находишь их ?!


Ну что ж я совсем что ли деревня? %))) Одни строки есть, а других - нет, так не бывает, написано ж на дельфи. Там есть очень подозрительно похожие по длине строчки.

Электрикс 20 мБ. Куда ж я его выложу?

tundra37 пишет:
Поборов ограничение на число операций, нарвешься на следующее и так до пенсии будешь ломать то, что уже давно сломано.


Да мне просто нужно что бы не было этого ограничения, не буду я с другими бороться, некогда и нет необходимости. Ну а если есть готовый кряк! Кто подарит - ставлю виртуальную бутылку виртульного пива %)))

Афтакад у меня 2000i, ну просто привык %)) по природе консерватор. 2004,5,6 пробовал - не понравилось.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 04 июня 2006 10:33
· Личное сообщение · #21

n48 пишет:
Электрикс 20 мБ. Куда ж я его выложу?

На rapidshare.de или webfile.ru
n48 пишет:
Ну а если есть готовый кряк! Кто подарит - ставлю виртуальную бутылку виртульного пива

Никто не подарит. На lavteam можно попросить, только придется об"яснит что у тебя за версия.
А может тебе там просто так сломают Правда сейчас уже все давно 5-ю версию используют.


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


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