Суть такая. Есть прг.под Win95.Работает с портами на прямую. Есть ХP.В которой при запуске прг.пишет "Cорри женщины и др.Только Win95". Насколько можно почитать в "прессе",существуют "прокладки" обеспечивающие работу с портами в ХP(типа UserPort,NTLoader ?...) Т.о задача сводится к подмене ответа некоей func API проверяющей валидность... Чтобы сделали искушенные и как ?.ОllyDbg cкачал
Автор темы явно юморист! Прокладки, женщины... Что скажут психиатры? По поводу прямого доступа к портам в NT - копай в сторону драйвера giveio.sys, прилагающегося к одной из прог по управлению оборотами кулера, да и просто валяющегося в Сети
Otebebe Зачем подменять функцию. Дезассемблируй исходнуб программу и пропатчи ее где происходит эта проверка. Только вот здается мне что не совсем по уровню WASM.BEGINNERS эта задача по зубам...
Я не пойму кто в теме? Какой подменять? Просто после вызова GetVersion/GetVersionEx прост колпашиш всякие проверки после вызова, ну там je/jne заменяешь на безусловные. Другое дело убедись что ексешко не пакованое. А то хачить проблематично бывает, всякая умнота там, похачит.. А доступ к портам, лутше сделать левую зависимость от DLL в entrypoinnt, которой CreateFile("giveio" ... вот..
Otebebe C портами можно работать напрямую и в XP - http://www.sasm.narod.ru/docs/pm/pm_tss/chap_5.htm и http://www.wasm.ru/forum/viewtopic.php?pid=143075 и http://www.wasm.ru/article.php?article=apihook_3 и http://www.wasm.ru/article.php?article=drvw2k03
PROFiиMental_Mirror Уточняюсь.Мне не нужно _произвольным_ способом работать с портами,а с помощью указанной прг.онли(ибо "привычка вторая натура"). В силу проверки при старте самоё себя (на хост запуска) этой прг.ни дайио.cис ни юзерпорт тут не помогут,увы. Мне хотелось узнать какая фунция может осуществлять такую проверку (возврат в АPI вроде бы по договоренности через EAX ?) и зафиксировать нужный мне возврат (пропатчить).А потом, естественно, работать через любую "прокладку" (пусть giveio.sys) Возможно,но я где-то слышал "не боги-горшки обжигают".
Otebebe Есть ХP.В которой при запуске прг.пишет "Cорри женщины и др.Только Win95". В свойствах приложения/ярлыка на закладке "Совместимость" версию win'ды пробовал менять?
Otebebe Чтобы сделали искушенные и как ?.ОllyDbg cкачал 1) Изучить ассемблер в общих чертах (искать masm, tasm, или fasm). Обязательно написать свою Hello Word хотя бы для DOS 2) Прочитать как передавать и как получит конечный результат функции на СИ (а в Windows этих функций большинство). Потом переписать Hello Word для Windows 3) После того попробовать дезассемблировать и отлаживать свою программу под Олькой, а лишь затем браться за программы написанные кем-то. Или проще - заплатить деньги человеку, который в этом смыслит.
q_q Нет (точнее не помню.Может быть и пробовал). Попробую спасибо. Биг сэнкс. PROFi Давно уже.(http://www.wasm.ru/forum/viewtopic.php?id=20606&p=2 )(я плохо,но говорю под ДОС на асм и пишу для себя ) Код (Text): 2) Прочитать как передавать и как получит конечный результат функции на СИ (а в Windows этих функций большинство). Потом переписать Hello Word для Windows Все.Купил книгу Пирогова Спасибо. Cогласен.Но каждый хочет-всего и сразу. Вы программисты...хе-хе...себе цены не сложите. (из опыта личного общения.) Я сделаю (or не сделаю) все _сам_.
Otebebe если прога неахти какая большая, приатачь/залей куданить. Всегда интересно ковырнуть. Чисто ради спортивного интереса и азарта А так помниццо гамесу Tomb Rider 3, на венде2000 стартанул. Ексешко, сцуко, пыталось почитать CR4.
Otebebe Кстати - основной момент с какими портами работает программа. У тебя будут большие проблемы с синхронизацией если устройства с которыми работает прога одновременно будут использовться и Windows, даже если у проги отодрать проверку и разрешить ей работать напрямую с железом, поскольку вся архитектура Windows NT не расчитана на такую работу (необходимо делить приложение на 2 файла и один из них должен быть драйвер ядра). А если у тебя двухпроцессорная машина, то вообще проблем необерешся. Единственное как исключение - это работа с com и lpt, но и тут не все гладко..