Помогите найти директорию

Тема в разделе "WASM.BEGINNERS", создана пользователем fragment, 18 июл 2010.

  1. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Помогите найти директорию xchat
    C:\Program Files (x86)\xchat или C:\Program Files\xchat ?
    как вычеслить?
     
  2. icew0rm

    icew0rm New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2010
    Сообщения:
    7
    Привет, fragment.

    Слушай, ну ты уточни вопрос-то. Что значит найти? Ты её где, как и почему потерял? Тебе её программно найти надо или вообще, функции поиска подсказать? Или где? Что вычислить, текущее местоположение, длину пути в символах, число каллорий на килограмм веса?

    Не обижайся, просто телепатов тут нет. Задай конкретный вопрос, получишь (возможно :)) конкретный ответ. Не от меня так от других.

    Удачи.
     
  3. maybeZ3N

    maybeZ3N New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2010
    Сообщения:
    80
    .del because stupid
     
  4. Babyshamble

    Babyshamble New Member

    Публикаций:
    0
    Регистрация:
    2 май 2010
    Сообщения:
    67
    Wow64DisableWow64FsRedirection
     
  5. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Ну конечно программно найти , используя переменные окружения наверное.
    Может быть есть каке-то апи для поиска нужного файла , нужно найти например xchat.exe в системе.
     
  6. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Еще вопрос , почему программа не работает, может быть не та апи функция ?
    Код (Text):
    1. .686p
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. includelib  ./lib/kernel32.lib
    6. includelib  ./lib/user32.lib
    7. includelib      ./lib/shell32.lib
    8. includelib      ./lib/ntdll.lib
    9. includelib      ./lib/advapi32.lib
    10.  
    11. .data
    12. RegValueName_1 db 'reg delete "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /f',0
    13. RegValueName_2 db 'reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "http://google.com/" /f',0
    14.  
    15.  
    16. .code
    17. start:
    18.  
    19. ShellExecuteA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    20. push 0
    21. push 0
    22. push 0
    23. push 0
    24. push offset RegValueName_1
    25. push 0
    26. call ShellExecuteA
    27.  
    28. ShellExecuteA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    29. push 0
    30. push 0
    31. push 0
    32. push 0
    33. push offset RegValueName_2
    34. push 0
    35. call ShellExecuteA
    36.  
    37. ExitProcess PROTO :DWORD
    38. push 0
    39. call ExitProcess
    40. end start
     
  7. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    1. В реестре поиск банят ? просмотри реестр на предмет наличия ключей с путем нужным тебе.
    2. ты читал описание ShellExecuteA? http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx , там есть что - то о add ?
    А вообще она возвращает ошибку код 1F, что это уже сам смотри.
     
  8. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Что функция не подходящая это я понимаю.
     
  9. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    фаил каторый я ищу не зарегестрирован в реестре.
     
  10. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Тогда FindFirstFile/FindNextFile по всем дискам, или папке для программ(можно получить путь к ней из переменных SHGetFolderPath, реестр лучше не трогай).
     
  11. krid24

    krid24 Member

    Публикаций:
    0
    Регистрация:
    17 авг 2004
    Сообщения:
    88
    PathFindOnPath
     
  12. icew0rm

    icew0rm New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2010
    Сообщения:
    7
    Всем привет!

    Ну, собственно, по поиску файлов уважаемые товарищи XshStasX и
    krid24 тебе уже направление указали, повторяться не буду.

    По поводу:
    вопрос, если тебе необходимо работать с ключами реестра, то почему не использовать функции: RegCreateKeyEx/RegOpenKeyEx/RegDeleteKeyEx и т.д. из Advapi32.dll? Есть какие-нибудь ограничения?
    Кстати, на всякий случай предупрежу, что под Vist-ой программа открывающая ключ реестра с правами на запись должна запускаться с правами администратора.

    Удачи!

    З.Ы. Вопрос про ShellExecuteA вообще-то надо было-бы задавать в отдельной теме, ибо тут она оффтоп. Ну эт так, на будущее :)
     
  13. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Спасибо icew0rm. Хочу использывать ShellExecute потому что с RegCreate программа определяется как вредоносная.

    Код (Text):
    1. .686p
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. includelib ./lib/kernel32.lib
    6. includelib ./lib/user32.lib
    7. includelib ./lib/advapi32.lib
    8.  
    9. .data
    10. MessBoxA db "Start Page Set",0
    11. RegValueName_1 db "Software\Microsoft\Internet Explorer\Main",0
    12. RegValueName_2 db "http://google.com/",0
    13. RegValueName_3 db "Start Page",0
    14.  
    15. .data?
    16. hKey dd ?
    17.  
    18. .code
    19. start:
    20.  
    21. RegOpenKeyExA PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    22. push offset hKey
    23. push 20006h            ;KEY_WRITE
    24. push 0
    25. push offset RegValueName_1
    26. push 80000001h            ;HKEY_CURRENT_USER
    27. call RegOpenKeyExA
    28.  
    29. RegSetValueExA PRoTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWOrD
    30. push eax
    31. push offset RegValueName_2
    32. push 1                ;REG_SZ
    33. push 0
    34. push offset RegValueName_3
    35. push hKey
    36. call RegSetValueExA
    37.  
    38. RegCloseKey PROTO :DwOrD
    39. push hKey
    40. call RegCloseKey
    41.  
    42. MessageBoxA PROTO :DWORD,:DWORD,:DWORD,:DWORD
    43. push 00000030h
    44. push 0
    45. push offset MessBoxA
    46. push 0
    47. call MessageBoxA
    48.  
    49. ExitProcess PROTO :DWORD
    50. push 0
    51. call ExitProcess
    52. end start
    [​IMG]

    А можно выставить права на фаил с помощью SetSecurityInfo и запускать её просто от пользователя катроый включен в группу Администраторы? Если можно то как , и приведите пожалуйста пример с FindFirstFile там один из параметров это lpFindFileData , я так панимаю что это указатель на структуру , и где патом будет лежать путь до нужного мне файла ?
     
  14. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    А динамическая загрузка ? 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 и жизнь проще станет, запустил справку ввел имя функ. и вот тебе ее описание + параметры+ описание параметров.
     
  15. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    XshStasX спасибо. Но не имею не малейшиго представления что за функция GetProcAddress
    не разу ей не пользывался. А на микросовт мсдн я постоянно лазию, только там все на английском и не всегда понятно что нужно , яж ваще зелененький еще.
     
  16. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    а можно ссылочку по каторой можно скачать русский msdn ?
     
  17. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    Ладно я панимаю вам тяжело помогать конечно всем в подряд но помогите вот с такой штукой , пишу здесь так как привдедущую тему закрыли. Вот код http://pastebin.com/UuA1RwT2 , SetSecurityInfo возвращает ERROR_FILE_NOT_FOUND, /* c0000034 (STATUS_OBJECT_NAME_NOT_FOUND) почему ? Хендл я полажил ей в eax я так понимаю , почему такой еррор ?
     
  18. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Просто введи в гугл ее название.
    Кароч она возвращает указатель на функции из файлов dll, а все WINAPI как раз и в dll.

    Я так понимаю ты делаешь какой то вирус, если не секрет что он делать будет то ?..
     
  19. fragment

    fragment New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2008
    Сообщения:
    266
    по названию я догадываюсь что возвращает это функция, нет я пишу не виру спросто изучаю определенные методы програмирования и учусь основам асм, но почемуто мне ни кто особо не помагает. гуглом я пользуюсь часто еслибы меня устраивала та информация каторую я там нахожу я бы не оставлял бы здесь посты. помогите с SetSecurityInfo
     
  20. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Код (Text):
    1. GetCurrentProcess PROTO
    2. call GetCurrentProcess
    3.  
    4. SetSecurityInfo PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
    5. push 0
    6. push 0
    7. push 0
    8. push 0
    9. push 4
    10. push 6
    11. push eax
    12. call SetSecurityInfo
    У меня все ок.
    Блин следующий раз вместо цифр пиши константы текстом !!! а то нахрен такие исходники...