Size: a a a

2020 August 08

G

Garey in supapro.cxx
По этому я нвидиа карту купил))
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Sooqa
Чёрт возьми , ну и пиздец. Проще повеситься чем скомпилировать тф с ускорением для амд
Тф не заточен под амд, это не проблема дистрибуции и линукса в частности
источник

s

std::slavik in supapro.cxx
Евгений Горелов
народ подскажите кой-что
DWORD32 *buffer = (DWORD32 *)pIrp->AssociatedIrp.SystemBuffer;
DWORD32 processesPid = *buffer;
PEPROCESS process;
NTSTATUS status = PsLookupProcessByProcessId(processesPid, &process);

if (!NT_SUCCESS(status))
{
 return;
}

PULONG ptr = (PULONG)process;
ULONG offset = 0;

for (ULONG i = 0; i < 512; i++)
{
 if (ptr[i] == processesPid)
 {
  offset = (ULONG)&ptr[i + sizeof(INT_PTR)] - (ULONG)process;
  break;
 }
}

if (!offset)
{
 return;
}

PLIST_ENTRY currListEntry = (PLIST_ENTRY)((ULONG)process + offset);

DbgPrint("Current: %#x", process);
DbgPrint("Prev: %#x", currListEntry);
DbgPrint("process: %#x", process);
DbgPrint("offset: %#x", offset);
DbgPrint("blink: %#x",  currListEntry->Blink);
есть такой код
ищу где записан Pid в PEPROCESS
за ним идет структура PLIST_ENTRY
когда пытаюсь обратится к currListEntry->Blink
наступает хана компу)
а с выравниванием как?
источник

S

Sooqa in supapro.cxx
Artöm Bakri Al-Sarmini
Тф не заточен под амд, это не проблема дистрибуции и линукса в частности
Возможно , но я больше склоняюсь к тому что в c++ слишком непластичный coupling. Если что-то написали ,то изменить это невозможно. Мда
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Это следствие того, как работает динлинковка
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
То, что тф не разделил куда и амд зависимости в отдельные шаренные либы, который легко доставляются системным пакетником, на совести тф
источник

S

Sooqa in supapro.cxx
аминь, живём дальше в мире  боли и страданий несовершенного мира
источник

s

std::slavik in supapro.cxx
offset = (ULONG)&ptr[i + sizeof(INT_PTR)] - (ULONG) process;
тут мне кажется в квадратных скобках прибавляется чет многовато
источник

VD

Vlad Doc in supapro.cxx
std::slavik
offset = (ULONG)&ptr[i + sizeof(INT_PTR)] - (ULONG) process;
тут мне кажется в квадратных скобках прибавляется чет многовато
Кажется проблема в сайзофе
источник

s

std::slavik in supapro.cxx
Vlad Doc
Кажется проблема в сайзофе
ага
источник

s

std::slavik in supapro.cxx
+1
источник

s

std::slavik in supapro.cxx
над
источник

VD

Vlad Doc in supapro.cxx
Потому что это не воид*
источник

s

std::slavik in supapro.cxx
или без скобок
источник

s

std::slavik in supapro.cxx
я когда адреса считаю скобки квадратные избегаю
источник

s

std::slavik in supapro.cxx
легко запутаться
источник

s

std::slavik in supapro.cxx
лучше явно писать со всеми сайзофами имхо
источник

s

std::slavik in supapro.cxx
Евгений Горелов
народ подскажите кой-что
DWORD32 *buffer = (DWORD32 *)pIrp->AssociatedIrp.SystemBuffer;
DWORD32 processesPid = *buffer;
PEPROCESS process;
NTSTATUS status = PsLookupProcessByProcessId(processesPid, &process);

if (!NT_SUCCESS(status))
{
 return;
}

PULONG ptr = (PULONG)process;
ULONG offset = 0;

for (ULONG i = 0; i < 512; i++)
{
 if (ptr[i] == processesPid)
 {
  offset = (ULONG)&ptr[i + sizeof(INT_PTR)] - (ULONG)process;
  break;
 }
}

if (!offset)
{
 return;
}

PLIST_ENTRY currListEntry = (PLIST_ENTRY)((ULONG)process + offset);

DbgPrint("Current: %#x", process);
DbgPrint("Prev: %#x", currListEntry);
DbgPrint("process: %#x", process);
DbgPrint("offset: %#x", offset);
DbgPrint("blink: %#x",  currListEntry->Blink);
есть такой код
ищу где записан Pid в PEPROCESS
за ним идет структура PLIST_ENTRY
когда пытаюсь обратится к currListEntry->Blink
наступает хана компу)
SIGBUS просто скорей всего какой нить вылетает
источник

s

std::slavik in supapro.cxx
короче это все отлаживается аккуратным переписыванием кода с контролем промежуточных всех адресов и смещений
источник

s

std::slavik in supapro.cxx
ну и не надо гнушаться макросами и constexpr)
источник