Closed zenbooster closed 5 years ago
Вероятно, что часть параметров этой функции передаются через стек (начиная с 7-го). Особенность реализации KHOOK на данный момент заключается в том, что там присутствует промежуточный CALL
, который изменяет стековый фрейм. Соответственно, часть параметров становятся недоступны (в реальности в части параметров (с 7-го) будет мусор).
Посмотрите, пожалуйста, работает ли исправление?
После перехвата scsi_execute вставляю флешку. На первом вызове scsi_execute ядро рушится. Ubuntu 18.04 kernel 4.15.3 x64 В то же время тестовый пример (до внесения изменений) работает.
include <scsi/scsi_device.h>
KHOOK(scsi_execute); static int khook_scsi_execute( struct scsi_device sdev, const unsigned char cmd, int data_direction, void buffer, unsigned bufflen, unsigned char sense, struct scsi_sense_hdr sshdr, int timeout, int retries, u64 flags, req_flags_t rq_flags, int resid ) { int ret = 0;
}