Уважаемые гуру, рассудите

Тема в разделе "WASM.HEAP", создана пользователем trash_master, 3 июл 2007.

  1. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    Вот такая вот проблема, кто считает себя профи, обясните плиз, неправому в чем он не прав:
    Код (Text):
    1. 22:50 Sergius: конкретний случай
    2. 22:50 Sergius: перед     call dword [edi+DAT.in_ll]
    3. 22:51 Sergius: EDI - 230000
    4. 22:51 Sergius: DAT.in_ll  - 2f01e15
    5. 22:52 MSoft: ну, в твоем коде ты прыгнешь на 2f01e15
    6. 22:54 Sergius: ноуп, в мойому коді я пригну на  [edi+DAT.in_ll]  - тоесть на  2f01e15+230000
    7. 22:54 Sergius: аце *** зна де
    8. 22:54 MSoft: в честь чего???
    9. 22:51 Sergius: EDI - 230000
    10. 22:51 Sergius: DAT.in_ll - 2f01e15
    11. 22:55 MSoft: ты прыгнешь на адрес, который хранится в DAT.in_ll
    12. 22:55 MSoft: только с учетом дельты
    13. 22:55 Sergius: call dword [edi+DAT.in_ll]
    14. 22:55 MSoft: т.е. просто на 2f01e15
    15. 22:55 Sergius: яка учета дельти....
    16. 22:55 MSoft: в EDI у тебя дельта-смещение!
    17. 22:55 Sergius: call dword [edi+DAT.in_ll]   - ти реально дуплиш шо цей код робить ?
    18. 22:56 MSoft: ***, он вызывает функцию, которая хранится в DAT.in_ll. Если в этой переменной лежит 2f01e15, то туда и будет прыжок!
    19. 22:56 MSoft: или ты новый ассемблер придумал?
    20. 22:56 Sergius: ой ***...ну ти й кодер....:) я в ****
    21. 22:57 MSoft: сам ты кодер такой
    22. 22:57 MSoft: я вперые слышу, чтобы вот так на лету прибавляли к регистру число и прыгали
    23. 22:57 Sergius: слухай, зара раді експеримента я запостю в беггінерс на васмі цей код, ти не протів ?
    24. 22:57 MSoft: давай
    25. 22:57 MSoft: я только за!
    26. 22:58 Sergius: точніше не код, а наш с тобою розговор :)
    27. 22:58 MSoft: если я не прав, форматну винт и уйду в монахи!
    28. 22:58 MSoft: тогда лучше в юмор!
    29. 22:58 Sergius: ***....готов монахи
    Р.S. Публикуется с согласия MSoft
     
  2. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    жжоте ребята. книгу читать :))))
    вызов буит по одресу, который лежит в дворде, который по одресу 2f01e15+230000, есле 2f01e15 - это смещение DAT.in_ll :) посмотреть под отладчегом слабо.

    з.ы. для этого не надо быть гуру
    з.ы.ы. действительно смахивоет на то что еди - дельта, относительно которой идет вызов процедуры, адрес которой лежит в DAT.in_ll
     
  3. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    ну че, кто к MSoft`у на проводы пойдет ? монастырь конечно не армия, но проводить всеравно нада ;)
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    нет, это не смещение, а значение переменной

    а в edi 100% дельта - просто код не показан
     
  5. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    FreeManCPM а EDI и есть дельта, код мой :). Факт требующий доказательства, что вызов будет по
     
  6. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    trash_master
    сам ты в армию уйдешь! ;) читай внимательно! цитирую:
    и еще:
    ну и где тут я не прав?
     
  7. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    тогда 1:0 в пользу мсофта
     
  8. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    а таймаут скоро?
     
  9. Guest

    Guest Guest

    Публикаций:
    0
    trash_master
    Нам будет тебя нехватать :'(
     
  10. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    ееее, так и быть, даю пояснение
    Код (Text):
    1. DATS struc
    2.         in_lib db 120 dup(0)
    3.         in_proc db 10 dup(0)
    4.         in_ret  dd 0
    5.         in_ll   dd 0
    6.         in_gpa  dd 0
    7. ends
    8.  
    9. inject:
    10.         dat DATS ?
    11.         push eax
    12.         pusha
    13.         call delta
    14.         delta:
    15.         pop edi
    16.         sub edi,$-inject-1
    17.         ;lea eax,
    18.         push edi
    19.         call dword [edi+DAT.in_ll]
     
  11. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    прыжок в данном случае будет [edi(база) + DAT.in_ll(индекс ...ну или смещение как кому)]
     
  12. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    trash_master
    Код будет какраз тот про что тебе толковали.

    call dword [edi+401000], где 401000 это и есть адрес поля DAT.in_ll.
    Тоесть если edi = 0 а по адресу 401000 лежит значение 123 то call перейдет на 123.

    Шо неясно?
     
  13. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    im1111 не вижу логики в твоем высказывании
     
  14. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    бугагага=)))))))))))))