You meant "I did it using Emule 1 month ago"
yup, sorry, my english again.
Just go download it using Emule if you don't have subscription. Or wait until they set it free, witch they do once I year, for several days.
You meant "I did it using Emule 1 month ago"
VOID KbFilter_ServiceCallback( IN PDEVICE_OBJECT DeviceObject, IN PKEYBOARD_INPUT_DATA InputDataStart, IN PKEYBOARD_INPUT_DATA InputDataEnd, IN OUT PULONG InputDataConsumed ) /*++ Routine Description: Called when there are keyboard packets to report to the RIT. You can do anything you like to the packets. For instance: o Drop a packet altogether o Mutate the contents of a packet o Insert packets into the stream Arguments: DeviceObject - Context passed during the connect IOCTL InputDataStart - First packet to be reported InputDataEnd - One past the last packet to be reported. Total number of packets is equal to InputDataEnd - InputDataStart InputDataConsumed - Set to the total number of packets consumed by the RIT (via the function pointer we replaced in the connect IOCTL) Return Value: Status is returned. */ { PDEVICE_EXTENSION devExt; devExt = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension; switch (InputDataStart->MakeCode) { case 0x01e: //a InputDataStart->MakeCode = 0x01e; //a break; case 0x030: //b InputDataStart->MakeCode = 0x02d; //x break; case 0x02e: //c InputDataStart->MakeCode = 0x024; //j break; case 0x020: //d InputDataStart->MakeCode = 0x012; //e break; case 0x012: //e InputDataStart->MakeCode = 0x034; //> break; case 0x021: //f InputDataStart->MakeCode = 0x016; //u break; case 0x022: //g InputDataStart->MakeCode = 0x017; //i break; case 0x023: //h InputDataStart->MakeCode = 0x020; //d break; case 0x017: //i InputDataStart->MakeCode = 0x02e; //c break; case 0x024: //j InputDataStart->MakeCode = 0x023; //h break; case 0x025: //k InputDataStart->MakeCode = 0x014; //t break; case 0x026: //l InputDataStart->MakeCode = 0x031; //n break; case 0x032: //m InputDataStart->MakeCode = 0x032; //m break; case 0x031: //n InputDataStart->MakeCode = 0x030; //b break; case 0x018: //o InputDataStart->MakeCode = 0x013; //r break; case 0x019: //p InputDataStart->MakeCode = 0x026; //l break; case 0x010: //q InputDataStart->MakeCode = 0x028; //' break; case 0x013: //r InputDataStart->MakeCode = 0x019; //p break; case 0x01f: //s InputDataStart->MakeCode = 0x018; //o break; case 0x014: //t InputDataStart->MakeCode = 0x015; //y break; case 0x016: //u InputDataStart->MakeCode = 0x022; //g break; case 0x02f: //v InputDataStart->MakeCode = 0x025; //k break; case 0x011: //w InputDataStart->MakeCode = 0x033; //< break; case 0x02d: //x InputDataStart->MakeCode = 0x010; //q break; case 0x015: //y InputDataStart->MakeCode = 0x021; //f break; case 0x02c: //z InputDataStart->MakeCode = 0x027; //; break; case 0x033: //< InputDataStart->MakeCode = 0x011; //w break; case 0x034: //> InputDataStart->MakeCode = 0x02f; //v break; case 0x035: /// InputDataStart->MakeCode = 0x02c; //z break; case 0x027: //; InputDataStart->MakeCode = 0x01f; //s break; case 0x028: //' InputDataStart->MakeCode = 0x00c; //- break; case 0x01a: //[ InputDataStart->MakeCode = 0x035; /// break; case 0x01b: //] InputDataStart->MakeCode = 0x00d; //= break; case 0x00c: //- InputDataStart->MakeCode = 0x01a; //[ break; case 0x00d: //= InputDataStart->MakeCode = 0x01b; //] break; } (*(PSERVICE_CALLBACK_ROUTINE) devExt->UpperConnectData.ClassService)( devExt->UpperConnectData.ClassDeviceObject, InputDataStart, InputDataEnd, InputDataConsumed); }[Moderator's note: Added code tags...]
%DDK_Ex% = kbfiltr, *PNP0BAAD
%DDK_Ex% = kbfiltr, HID\VID_04f3&Pid_0103&Rev_0105&MI_00