Сейчас на форуме: rtsgreg1989, zds, _MBK_ (+5 невидимых) |
![]() |
eXeL@B —› Основной форум —› Как бы мне внутри программы на FoxPro узнать точки входа на функции/процедуры? |
Посл.ответ | Сообщение |
|
Создано: 12 августа 2007 11:17 · Личное сообщение · #1 Проблема если кто не знает в том - что в FoxPro нет такого понятия как указатель на функцию... А мне бы вот очень-очень хотелость бы внутри программы каким-нить извращённым способом но всё таки найти так называемый Handle на нужную функцию находищуюся внутри запущенной программы...и запустить ту функцию отдельным потоком... Мысли пока сводятся к варианту - посмотреть в дебагере как происходит вызов функции - какие используются регистры что в них записано и что в стеке... потом обойти вызов этой функции гоу-то...и сразу зафигачить ассэмблерный кусок кода который возвращает нужный мне handle выдрав значения с регистров... Но может кто подскажет как попроще и понадёжней можно это сделать? По средствам API шных функции можно получить дескриптор процесса но по названиям функций поиск не даёт результат... ![]() |
|
Создано: 12 августа 2007 12:11 · Личное сообщение · #2 Asmodey2 пишет: в FoxPro нет такого понятия как указатель на функцию Как это? А как же AddressOf? Вроде там есть такое ключевое слово. Насколько я помню, чтоб получить указатель на функцию надо сделать как в VB: sub MyProc()
Могу ошибаться, но вроде Фокс это держит. ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 12 августа 2007 12:29 · Личное сообщение · #3 |
|
Создано: 12 августа 2007 13:52 · Личное сообщение · #4 Лис вроде вообще не ЕХЕшку компилит, а как QBasic свой интерпретатор + исходный код проги. Сомнительно что у тебя так что-то выйдет. ![]() Но если там не стоит какой-то сверепый уровень защиты, то прогу можно декомпилировать. Причём даже сохраняться названия всех переменных. Поменять что нужно, и без проблем скомпилить назад. ![]() Я над одной прогой на фоксе целый месяц возился, если что надо могу подсказать. ![]() ![]() |
|
Создано: 12 августа 2007 14:11 · Поправил: Asmodey2 · Личное сообщение · #5 ну проблема то в том что фокса ещё и DLLки не может полноценные делать... только библиотеки классов... В общем нужно мне процедуру написанную на VFP запустить отдельным потоком...а для этого нужен handle на эту процедуру... В общем чуйствую я что вопрос это в принципе не решаемый... проще сделать отдельный .exe и запускать отдельным процессом... ![]() |
|
Создано: 12 августа 2007 14:38 · Личное сообщение · #6 |
|
Создано: 13 августа 2007 06:25 · Личное сообщение · #7 |
|
Создано: 13 августа 2007 10:54 · Личное сообщение · #8 Maximus пишет: Refox тебе в руки и можно хоть exe перекампилить, а можно просто нужный функционал вытащить. Это смотря какой там уровень защиты стоит. ReFox далеко не все может... Да и сам ReFox может не только снимать, но и ставить защиту на ЕХЕ. Есть прога Corso6, она вроде защиту лучше снимает... ![]() |
|
Создано: 13 августа 2007 10:56 · Личное сообщение · #9 |
|
Создано: 13 августа 2007 11:09 · Личное сообщение · #10 Asmodey2 пишет: А мне бы вот очень-очень хотелость бы внутри программы каким-нить извращённым способом но всё таки найти так называемый Handle на нужную функцию находищуюся внутри запущенной программы...и запустить ту функцию отдельным потоком... Правкой exe вручную это практически невозможно. Декомпилируй exe ReFox-ом или RefoxAll-ом, проправь чего тебе нужно (добавь вызов процедуры/функции) и скомпилируй проект назад. ![]() |
|
Создано: 13 августа 2007 13:07 · Личное сообщение · #11 |
|
Создано: 13 августа 2007 17:49 · Личное сообщение · #12 ага... о своей... начальству надо чтоб всё было на фоксе... ну я нашёл способ как из фоксы запустить отдельным потоком какую-нить библиотечную функцию... Но надо чтоб эта функция была в нормальной DLL и имела адрес который можно APIшными функциями получить... а фокса какие то непонятные DLL делает - только под себя... короче ![]() ![]() |
|
Создано: 13 августа 2007 18:44 · Личное сообщение · #13 |
|
Создано: 16 августа 2007 17:31 · Личное сообщение · #14 |
|
Создано: 16 августа 2007 22:04 · Личное сообщение · #15 |
![]() |
eXeL@B —› Основной форум —› Как бы мне внутри программы на FoxPro узнать точки входа на функции/процедуры? |