|
|
От: | TSS_TSS | http://kitrap08.blogspot.com/ |
| Дата: | 19.11.15 17:36 | ||
| Оценка: | +2 | ||
Встречаются и такие конструкции:
IoFreeIrp:
414012 8BFF MOV EDI,EDI
414014 55 PUSH EBP
414015 8BEC MOV EBP,ESP
414017 5D POP EBP
414018 FF258C474800 JMP D PTR [0048478C]
…
IoAllocateIrp:
41406D 8BFF MOV EDI,EDI
41406F 55 PUSH EBP
414070 8BEC MOV EBP,ESP
414072 5D POP EBP
414073 FF2588474800 JMP D PTR [00484788]
Эти фрагменты вызывают в памяти анекдот про двух человек, один из которых выкапывал ямы, а второй шел за ним и закапывал. Согласно анекдоту должен был быть еще и третий, который бы сажал деревья, но он не пришел. Здесь выполняется пролог подпрограммы, а затем сразу эпилог. Возможно, в исходном тексте находится какой-то закомментированный фрагмент и это дает такой эффект. Возможно, это было сделано для каких-то отладочных остановок. Но как бы то не было, каждый раз, когда происходит обращение к подпрограммам IoAllocateIrp и IoFreeIrp, сначала выполняются бессмысленные команды.