и снова сорри за оффтоп, но не охота делать новую тему по пустякам.... вообщем стандартно перебираю свои длл, т.е. mov eax,fs:[$30] mov eax,[eax+$0C] //PEB->Ldr mov eax,[eax+$14] //1-й модуль в списке @next_mod: // cmp [eax+$28],0 //указатель на имя длл, но по нему не определить, что перебор закончен cmp [eax+$20],0 //а вот тут все виндовозы кроме win7_64bit дают ноль при окончании перебора jne @_Continue ret @_Continue: mov eax,[eax] //следующий модуль jmp @next_mod как определить, что перебор закончен? какое смещение относительно eax смотреть?
Deader Там двух связный кольцевой список, то есть первый элемент указывает на последний, а посл. на первый. Вот посмотри http://wasm.ru/forum/viewtopic.php?id=43476
[eax+$20] действительно ноль на всех виндовозах при окончании перебора, в том числе и на win7_64bit просто у мя на виртуалбоксе был запущен win7_64bit. я получаю базы длл и по ним сканирую таблицы импорта длл, так вот, если база превышает определенное значение, то нельзя читать импорт напрямую(будет аксес виялятиун) и из-за этого я подумал, что в переборе длл вышел за границы списка... зы XshStasX tnx