Код (ASM): mov qword [rsp+60h],lpPassword mov qword [rsp+58h],lpServiceStartName mov qword [rsp+50h],lpDependencies mov qword [rsp+48h],lpdwTagId mov qword [rsp+40h],lpLoadOrderGroup mov qword [rsp+38h],lpBinaryPathName mov rax,[dwErrorControl] mov [rsp+30h],rax mov rax,[dwStartType] mov [rsp+28h],rax mov rax,[dwServiceType] mov [rsp+20h],rax mov r9,[dwDesiredAccess] mov r8d,lpDisplayName mov edx,lpServiceName mov rcx,[hSCManager] call CreateServiceA там, где название переменной начинается с lp ― это адрес, иначе это значение переменной ― тогда используются скобки и регистр еах система подставит иконку "по умолчанию"
Я сделал так : https://pastebin.com/sMttVcbh Сервис не создается и после OpenSCManagerA не берется даже GetLastError, хотя в x64dbg вроде всё отрабатывается
Простите, что-то всё-таки создается, но вопрос не актуален по поводу сервиса больше. Клиент будет обычным консольным приложением. --- Сообщение объединено, 12 янв 2021 --- Mikl___ помогите с ресурсами пожалуйста. Как сделать иконку у exe файла?
Hacker, сообщение #55 создание иконок кучей способов или Глава одиннадцатая. Братец Кролик изучает иконки и курсоры
Ищу RC.EXE И мне еще нужно добавить xml к программе что бы запускалась от Администратора. Код (XML): <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <description>Admin program</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Скомпилировал res.rc с кодом: Код (Text): 1 24 "xpmanifest.xml" 100 ICON "icon.ico" получил res.res Нужно создать секцию в файле .rsrc и добавить туда как-то скомпилированные ресурсы или прилинковать как-то? Я не совсем понял как делать. У меня программа не оконная. --- Сообщение объединено, 12 янв 2021 --- Почему RC.EXE у вас весит 74кб в пакете masm32 он 5кб --- Сообщение объединено, 12 янв 2021 --- да просто указал линкеру на res.res и все готово! Спасибо огромное!
Наверное потому что разные версии? У меня ― 64-разрядный Resource Compiler Version 6.3.9600.17336 В пакете masm32 ― 32-разрядный Resource Compiler, Version 5.00.1823.1 - Build 1823
Цифровая подпись к exe добавляется так же манифестом xml? Хотелось что бы в UAC отображался "Издатель" exe
Помогите пожалуйста с вот такой программой. Нашел Trial Reset XChat код и переписал его. но почему-то в отладчике sub esp 30 хотя в коде 48, как Вы говорили 8*на максимальное кол-во аргументов и кратное 16 Вот код: https://yadi.sk/d/-A4C_L9HFGBQFw --- Сообщение объединено, 12 янв 2021 --- http://xchat.org/files/binary/win32/xchat-2.8.9.exe
Почему код застревает где-то в дебрях системы после вызова SHGetSpecialFolderPathA? Даже не получается взять GetLastError --- Сообщение объединено, 12 янв 2021 --- INT3 точка останова "останов в точке входа" на <trial.EntryPoint> (0000000000401000)! EXCEPTION_DEBUG_INFO: dwFirstChance: 1 ExceptionCode: C0000005 (EXCEPTION_ACCESS_VIOLATION) ExceptionFlags: 00000000 ExceptionAddress: 0000000000D86B81 shell32.0000000000D86B81 NumberParameters: 2 ExceptionInformation[00]: 0000000000000000 Read ExceptionInformation[01]: FFFFFFFFFFFFFFFF Inaccessible Address
Hacker, В одном потоке два исключения одновременно невозможны. Первое у тебя i3 это останов отладчика на PE.EP. Второе отвалился на выборке шелл, тк не верные аргументы у какой то апи: > ExceptionAddress: 0000000000D86B81 shell32.0000000000D86B81 Первый адрес это линейный адрес инструкции, второй это адрес выборки. Два адреса в области системного общего модуля, а значит ты не смотрел аргументы на мсдн. Наверно как обычно попутал значение с указателем на него. Интересно кстате зачем ты использовал отладчик, если ничего в это не понимаешь даже то что он тебе показывает
MSDN: [SHGetSpecialFolderPath is not supported. Instead, use SHGetFolderPath.] Отменили, вместо этого: Код (C): SHFOLDERAPI SHGetFolderPathA( HWND hwnd, int csidl, HANDLE hToken, DWORD dwFlags, LPSTR pszPath ); --- Сообщение объединено, 13 янв 2021 --- Код (ASM): mov qword [rsp+20h] , PROGRAM_FILESX86 mov r9 , 0 mov r8 , 0 mov rdx , 0x002a mov rcx , 0 call SHGetFolderPathA не получается, то же почти исключение
Вообще это всё устаревшие функции и нужно брать системные пути с помощью SHGetKnownFolderPath но не могу разобраться в аргументах, читаю MSDN редко. Может кто поможет? HRESULT SHGetKnownFolderPath( REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath ); https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath Нужен путь к Program Filex x86
Код (C++): PWSTR path; SHGetKnownFolderPath(&FOLDERID_ProgramFilesX86, 0, NULL, &path); //path = L"C:\\Program Files (x86)" --- Сообщение объединено, 13 янв 2021 --- Еще есть хорошая книжка по NASM , вот https://wasm.in/threads/o-knige-rudolfa-mareka.3551/ если нет в ресурсах, могу добавить.
M0rg0t, да, это очень неплохая книга (жаль только Hacker ничего читать не будет, метод научного тыка ― это наше всё! )
Mikl___, в системном программировании такое не прокатит ) когда-то тоже пробовал методом тыка что-то решать, но понял - пока не прочту книгу , толку нет. Это в веб-кодинге можно так, на яваскрипт каком-то или пхп угадать там метод и функцию. Тут же только фундаментальное изучение матчасти (имхо). Книгу добавил
Да знаю я, это был сарказм по поводу Hacker и его нежеланию читать книги, разбираться с msdn и начинать с простых программ