Помогите найти директорию xchat C:\Program Files (x86)\xchat или C:\Program Files\xchat ? как вычеслить?
Привет, fragment. Слушай, ну ты уточни вопрос-то. Что значит найти? Ты её где, как и почему потерял? Тебе её программно найти надо или вообще, функции поиска подсказать? Или где? Что вычислить, текущее местоположение, длину пути в символах, число каллорий на килограмм веса? Не обижайся, просто телепатов тут нет. Задай конкретный вопрос, получишь (возможно ) конкретный ответ. Не от меня так от других. Удачи.
Ну конечно программно найти , используя переменные окружения наверное. Может быть есть каке-то апи для поиска нужного файла , нужно найти например xchat.exe в системе.
Еще вопрос , почему программа не работает, может быть не та апи функция ? Code (Text): .686p .model flat,stdcall option casemap:none includelib ./lib/kernel32.lib includelib ./lib/user32.lib includelib ./lib/shell32.lib includelib ./lib/ntdll.lib includelib ./lib/advapi32.lib .data RegValueName_1 db 'reg delete "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /f',0 RegValueName_2 db 'reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "http://google.com/" /f',0 .code start: ShellExecuteA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD push 0 push 0 push 0 push 0 push offset RegValueName_1 push 0 call ShellExecuteA ShellExecuteA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD push 0 push 0 push 0 push 0 push offset RegValueName_2 push 0 call ShellExecuteA ExitProcess PROTO :DWORD push 0 call ExitProcess end start
1. В реестре поиск банят ? просмотри реестр на предмет наличия ключей с путем нужным тебе. 2. ты читал описание ShellExecuteA? http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx , там есть что - то о add ? А вообще она возвращает ошибку код 1F, что это уже сам смотри.
Тогда FindFirstFile/FindNextFile по всем дискам, или папке для программ(можно получить путь к ней из переменных SHGetFolderPath, реестр лучше не трогай).
Всем привет! Ну, собственно, по поиску файлов уважаемые товарищи XshStasX и krid24 тебе уже направление указали, повторяться не буду. По поводу: вопрос, если тебе необходимо работать с ключами реестра, то почему не использовать функции: RegCreateKeyEx/RegOpenKeyEx/RegDeleteKeyEx и т.д. из Advapi32.dll? Есть какие-нибудь ограничения? Кстати, на всякий случай предупрежу, что под Vist-ой программа открывающая ключ реестра с правами на запись должна запускаться с правами администратора. Удачи! З.Ы. Вопрос про ShellExecuteA вообще-то надо было-бы задавать в отдельной теме, ибо тут она оффтоп. Ну эт так, на будущее
Спасибо icew0rm. Хочу использывать ShellExecute потому что с RegCreate программа определяется как вредоносная. Code (Text): .686p .model flat,stdcall option casemap:none includelib ./lib/kernel32.lib includelib ./lib/user32.lib includelib ./lib/advapi32.lib .data MessBoxA db "Start Page Set",0 RegValueName_1 db "Software\Microsoft\Internet Explorer\Main",0 RegValueName_2 db "http://google.com/",0 RegValueName_3 db "Start Page",0 .data? hKey dd ? .code start: RegOpenKeyExA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD push offset hKey push 20006h ;KEY_WRITE push 0 push offset RegValueName_1 push 80000001h ;HKEY_CURRENT_USER call RegOpenKeyExA RegSetValueExA PRoTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWOrD push eax push offset RegValueName_2 push 1 ;REG_SZ push 0 push offset RegValueName_3 push hKey call RegSetValueExA RegCloseKey PROTO :DwOrD push hKey call RegCloseKey MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD push 00000030h push 0 push offset MessBoxA push 0 call MessageBoxA ExitProcess PROTO :DWORD push 0 call ExitProcess end start А можно выставить права на фаил с помощью SetSecurityInfo и запускать её просто от пользователя катроый включен в группу Администраторы? Если можно то как , и приведите пожалуйста пример с FindFirstFile там один из параметров это lpFindFileData , я так панимаю что это указатель на структуру , и где патом будет лежать путь до нужного мне файла ?
А динамическая загрузка ? GetProcAddress Если будет ругаться на строку с именем функции, то попробуй разбить строку на несколько подстрок, а уже при загрузки их складывать. http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx То тебе то, то тебе се... http://www.google.com.ua/search?client=opera&rls=ru&q=FindFirstFile&sourceid=opera&ie=utf-8&oe=utf-8 Кстати скачай себе msdn и жизнь проще станет, запустил справку ввел имя функ. и вот тебе ее описание + параметры+ описание параметров.
XshStasX спасибо. Но не имею не малейшиго представления что за функция GetProcAddress не разу ей не пользывался. А на микросовт мсдн я постоянно лазию, только там все на английском и не всегда понятно что нужно , яж ваще зелененький еще.
Ладно я панимаю вам тяжело помогать конечно всем в подряд но помогите вот с такой штукой , пишу здесь так как привдедущую тему закрыли. Вот код http://pastebin.com/UuA1RwT2 , SetSecurityInfo возвращает ERROR_FILE_NOT_FOUND, /* c0000034 (STATUS_OBJECT_NAME_NOT_FOUND) почему ? Хендл я полажил ей в eax я так понимаю , почему такой еррор ?
Просто введи в гугл ее название. Кароч она возвращает указатель на функции из файлов dll, а все WINAPI как раз и в dll. Я так понимаю ты делаешь какой то вирус, если не секрет что он делать будет то ?..
по названию я догадываюсь что возвращает это функция, нет я пишу не виру спросто изучаю определенные методы програмирования и учусь основам асм, но почемуто мне ни кто особо не помагает. гуглом я пользуюсь часто еслибы меня устраивала та информация каторую я там нахожу я бы не оставлял бы здесь посты. помогите с SetSecurityInfo
Code (Text): GetCurrentProcess PROTO call GetCurrentProcess SetSecurityInfo PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD push 0 push 0 push 0 push 0 push 4 push 6 push eax call SetSecurityInfo У меня все ок. Блин следующий раз вместо цифр пиши константы текстом !!! а то нахрен такие исходники...