информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медПортрет посетителяАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[masm32] !!!-WNetEnumCachedPasswords-!!! 22.05.01 13:59  Число просмотров: 736
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> lea edi,buf1
> add edi,dword ptr [Pce.cbResource]
...
> lea edi,dword ptr [Pce.abResource]
> add edi,dword ptr [Pce.cbResource]

> lea edi,buf1
> add edi,dword ptr [Pce.cbPassword]


cbResource и cbPassword - это WORD
Надо так:

movzx edi, word ptr [Pce.cbResource]
add edi, offset buf1

И еще я не понял - ты перенес имя ресурса в buf2, преобразовав его в OEM,
а потом buf2 сразу же обнулил... наверное, перед обнулением был какой-то
код, который ты сюда не кинул ?

Обнулять такие большие буферы побайтно - не жалко тебе процессор гонять ? :)
Через rep stosd легче и быстрее, да и вообще их обнулять не нужно :)

<programming>
[masm32] !!!-WNetEnumCachedPasswords-!!! 22.05.01 12:15  
Автор: Pank Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Кто знает, подскажите, pls, где тут у меня ошибка (только не в ДНК! -))
Привожу кусок кода (немного урезанный). Ошибка, скорее всего, в функции обратного вызова.

структура:
PASSWORD_CACHE_ENTRY STRUCT
cbEntry WORD ? ; размер структуры
cbResource WORD ? ; размер имени
cbPassword WORD ? ; размер пароля
iEntry BYTE ? ; вход
nType BYTE ? ; тип входа -?
abResource BYTE ? ; начало имени
PASSWORD_CACHE_ENTRY ENDS

WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
PceCallBack PROTO :PASSWORD_CACHE_ENTRY,:DWORD

Lib db "mpr.dll",0
Proced db "WNetEnumCachedPasswords",0

Собственно вызов функции:
invoke LoadLibrary,ADDR Lib
invoke GetProcAddress,eax,ADDR Proced
.if eax!=0
push 0
push PceCallBack
push 0FFh
push 0
push 0
call eax
.endif

И сама функция:

PceCallBack Proc Pce:PASSWORD_CACHE_ENTRY,Param:DWORD
LOCAL buf1[255]:BYTE
LOCAL buf2[255]:BYTE

invoke MemCopy,ADDR buf1,Pce.abResource,Pce.cbResource
lea edi,buf1
add edi,dword ptr [Pce.cbResource]
mov byte ptr [edi],0
invoke CharToOem,ADDR buf1,ADDR buf2 ; в buf2 должно быть название

;-- обнуление ---
lea edi,buf1
lea esi,buf2
mov ecx,255
@@:
mov byte ptr [edi],0
mov byte ptr [esi],0
inc edi
inc esi
loop @B
;----------------

lea edi,dword ptr [Pce.abResource]
add edi,dword ptr [Pce.cbResource]
invoke MemCopy,ADDR buf1,edi,Pce.cbPassword
lea edi,buf1
add edi,dword ptr [Pce.cbPassword]
mov byte ptr [edi],0
invoke CharToOem,ADDR buf1,ADDR buf2 ; в buf2 должен быть пароль

mov eax,TRUE
ret
PceCallBack endp
[masm32] !!!-WNetEnumCachedPasswords-!!! 22.05.01 13:59  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> lea edi,buf1
> add edi,dword ptr [Pce.cbResource]
...
> lea edi,dword ptr [Pce.abResource]
> add edi,dword ptr [Pce.cbResource]

> lea edi,buf1
> add edi,dword ptr [Pce.cbPassword]


cbResource и cbPassword - это WORD
Надо так:

movzx edi, word ptr [Pce.cbResource]
add edi, offset buf1

И еще я не понял - ты перенес имя ресурса в buf2, преобразовав его в OEM,
а потом buf2 сразу же обнулил... наверное, перед обнулением был какой-то
код, который ты сюда не кинул ?

Обнулять такие большие буферы побайтно - не жалко тебе процессор гонять ? :)
Через rep stosd легче и быстрее, да и вообще их обнулять не нужно :)

[masm32] !!!-WNetEnumCachedPasswords-!!! 23.05.01 10:04  
Автор: Pank Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > lea edi,buf1
> > add edi,dword ptr [Pce.cbResource]
> ...
> > lea edi,dword ptr [Pce.abResource]
> > add edi,dword ptr [Pce.cbResource]
>
> > lea edi,buf1
> > add edi,dword ptr [Pce.cbPassword]
>
>
> cbResource и cbPassword - это WORD
> Надо так:
>
> movzx edi, word ptr [Pce.cbResource]
> add edi, offset buf1

Попробуем...

> И еще я не понял - ты перенес имя ресурса в buf2,
> преобразовав его в OEM,
> а потом buf2 сразу же обнулил... наверное, перед обнулением
> был какой-то
> код, который ты сюда не кинул ?

Ну да, это чтоб поменьше было-), а так я пока через SoftIce дебагрю

> Обнулять такие большие буферы побайтно - не жалко тебе
> процессор гонять ? :)
> Через rep stosd легче и быстрее, да и вообще их обнулять не
> нужно :)

Это верно. Просто мне так привычней - пора отвыкать от вредных привычек-). Хотя все эти rep с цепочечными операциями работают медленнее, хотя код меньше

Спасибо
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach