Как узнать EIP?

Тема в разделе "WASM.WIN32", создана пользователем Deader, 31 июл 2011.

  1. Deader

    Deader New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2011
    Сообщения:
    96
    и снова сорри за оффтоп, но не охота делать новую тему по пустякам....
    вообщем стандартно перебираю свои длл, т.е.

    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 смотреть?
     
  2. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Deader
    Там двух связный кольцевой список, то есть первый элемент указывает на последний, а посл. на первый.

    Вот посмотри http://wasm.ru/forum/viewtopic.php?id=43476
     
  3. Deader

    Deader New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2011
    Сообщения:
    96
    [eax+$20] действительно ноль на всех виндовозах при окончании перебора, в том числе и на win7_64bit

    просто у мя на виртуалбоксе был запущен win7_64bit. я получаю базы длл и по ним сканирую таблицы импорта длл, так вот, если база превышает определенное значение, то нельзя читать импорт напрямую(будет аксес виялятиун) и из-за этого я подумал, что в переборе длл вышел за границы списка...
    зы
    XshStasX tnx
     
  4. Malfoy

    Malfoy New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2012
    Сообщения:
    698
    Протектор сделать :lol:

    Если серьёзно, то никто в здравом уме не будет енумить модуля так.
     
  5. Deader

    Deader New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2011
    Сообщения:
    96
    а почему? а как надо?