Size: a a a

Ассемблер

2021 May 21

АШ

Алексей Шведов... in Ассемблер
Почему выдаёт AV?
push ecx ; Valid, length of mePath
push mePath ; Getted by GetModuleHandle, db 128
push REG_SZ
push 0
push keyname ; db 'MyProgram'
push hKey ; Valid. Getted by RegCreateKeyA
call [RegSetValueExA]

 
AV на этой строке в функции RegSetValueExA
imul ebp, dword ptr ss:[ebp+0x41], 0x6F6C4300
Какой-то аргумент неправильно передал, но не могу понять какой
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
второй
источник

АШ

Алексей Шведов... in Ассемблер
keyname ?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
а нет, вроде норм все. регистр, память, значение
источник

D

Den in Ассемблер
Вот можно как сделать, что то типа такого
generate $id;
mutex $id;
while i=1 $id.lock();
i=1;
..yourprogram..
i=0;
$id.unlock();
только i надо обьявить в статике где то повыше чтоли или какой то другой триггер общий использовать семафор,  можно тогда вообще без мутексов обойтись только while и скобками наверное
это псевдокод ;)
Вот такую функцию можно в качестве глобального счетчика использовать, прошу прощения за небольшой офтоп ну это в тему:

HANDLE CreateSemaphore
(
 LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,  // атр. доступа
 LONG lInitialCount,      // начальное состояние счетчика
 LONG lMaximumCount,      // макс  кол-о обращений
 LPCTSTR lpName        // имя объекта
);
Это видимо надо в отдельном процессе создавать который не будет дуплицироваться
BOOL ReleaseSemaphore
(
 HANDLE hSemaphore,// указатель на семафор
 LONG lReleaseCount,   // на сколько изменять счетчик
 LPLONG lpPreviousCount  // предыдущее значение
);
В случае успеха возвращаемое значение — не ноль.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
скорей всего второй и третий, они должны быть рпзмером в слово, если приемник у тя dword
источник

d

disba1ancer in Ассемблер
Взаимодействие с винапи должно идти по его соглашению по, а не так как ты себе напридумывал
источник

d

disba1ancer in Ассемблер
Произвольное изменение rip походит на некорректную отладку многопотока, такого не бывает, выведи в отладчике себе окно со списком потоков и гляди на каком именно потоке остановился отладчик
источник

D

Den in Ассемблер
LONG RegSetValueEx(
 HKEY hKey,           // handle to key
 LPCTSTR lpValueName, // value name
 DWORD Reserved,      // reserved
 DWORD dwType,        // value type
 CONST BYTE *lpData,  // value data
 DWORD cbData         // size of value data
);
источник

АШ

Алексей Шведов... in Ассемблер
Спасибо. Пропустил Reserved
источник

D

Den in Ассемблер
лови :) микро msdn
источник

ИГ

Иван Гончаренко... in Ассемблер
А для чего он нужен? Всем здрассе
источник

С

Сергей in Ассемблер
У меня не открылся. Den, спасибо. У кого не открылся пересобранный тот же файл (правда без поиска).
источник

D

Den in Ассемблер
ну там функции винды для асма!
источник

ИГ

Иван Гончаренко... in Ассемблер
Опа
источник

ИГ

Иван Гончаренко... in Ассемблер
По ПОДРОБНЕЙ! Пожалуйста 😊
источник

D

Den in Ассемблер
а чего поподробнее msdn это справочник там и поподробнее :)
источник

ИГ

Иван Гончаренко... in Ассемблер
ААА понял
источник

АШ

Алексей Шведов... in Ассемблер
О, спасибо. Давно такой искал, чтобы по сайту не лазать
источник

ИГ

Иван Гончаренко... in Ассемблер
Эммм...
источник