Это что за чудеса вначале функции(mov edi, edi), у всех что-ли так? Я в первый раз вижу.. На выравнивание вроде не похоже %) Код (Text): .text:7C81E079 .text:7C81E079 8B FF mov edi, edi .text:7C81E07B 55 push ebp .text:7C81E07C 8B EC mov ebp, esp .text:7C81E07E 83 EC 20 sub esp, 20h .text:7C81E081 8B 45 10 mov eax, [ebp+dwProcessId] .text:7C81E084 89 45 F8 mov [ebp+var_8], eax .text:7C81E087 8B 45 0C mov eax, [ebp+bInheritHandle] .text:7C81E08A 56 push esi .text:7C81E08B 33 F6 xor esi, esi .text:7C81E08D F7 D8 neg eax
7C81E079 > 8BFF mov edi, edi ; ntdll.7C910738 7C81E07B 55 push ebp 7C81E07C 8BEC mov ebp, esp 7C81E07E 83EC 20 sub esp, 20 7C81E081 8B45 10 mov eax, dword ptr ss:[ebp+10] 7C81E084 8945 F8 mov dword ptr ss:[ebp-8], eax 7C81E087 8B45 0C mov eax, dword ptr ss:[ebp+C] 7C81E08A 56 push esi 7C81E08B 33F6 xor esi, esi 7C81E08D F7D8 neg eax sp2
Внутри IsBadWritePtr есть что-то вроде такого: Код (Text): mov al,BYTE PTR cs:[module.xxx] mov BYTE PTR cs:[module.xxx],al Потом дошло, что это внутри SEH проверяет валидность адресов памяти. Зато на C/C++ такое, IMHO, не напишешь. В данном случае тоже что-то неестественное получается. MS не просто так пролог функции изменила... P.S: А они все так начинаются в kernel32!!! Это какой-то signature...
Quantum Видимо всё-таки не все, иначе мой плагин ни у кого на XP sp2 не работал бы, т.к. проверяет некоторые сигнатуры, например функции IsDebuggerPresent
Быстрее то быстрее, мне не понятно почему адрес то не выровнен, нафига тогда mov edi, edi было вставлять, для прикола?
поищи hot patching в иннете или воспользуйся ссылкой разора, это вставили для patch'а. почему не выровнен адрес? а фигли нужно. это ж не цикл. запусти VTune и посмотри сколько % пошло за пентальти, а сколько на основное время выполнения ф-ции
А в 2003 server'е код нормальный. А нас не посадят за код? 77E589C1 > 55 push ebp 77E589C2 8BEC mov ebp, esp 77E589C4 83EC 20 sub esp, 20 77E589C7 8B45 10 mov eax, dword ptr ss:[ebp+10] 77E589CA 8945 F8 mov dword ptr ss:[ebp-8], eax 77E589CD 8B45 0C mov eax, dword ptr ss:[ebp+C] 77E589D0 56 push esi 77E589D1 33F6 xor esi, esi 77E589D3 F7D8 neg eax