From: slacky
Sure there is, as mentioned it's fully doable to create pseudo-drivers for both mouse and keyboard, it does however require a bit more work, and would be quite a bit harder to detect.
Tho I would not worry about it just yet, as they don't seem to be hooking WinAPI function-calls as this could (AFAIK) easily be detected.
I understand now what you mean. That makes a ton more sense. Never saw it that way tbh.
Btw.. they DO hook winapi calls.
PUSH EBP
MOV EBP,ESP
SUB ESP,1C
PUSH EBX
MOV EBX,DWORD PTR SS:[EBP+C]
PUSH ESI
MOV ESI,DWORD PTR SS:[EBP+8]
MOV EAX,DWORD PTR DS:[ESI]
MOV ECX,DWORD PTR DS:[EAX+7C]
PUSH EDI
PUSH EBX
PUSH ESI
CALL ECX
MOV EDX,DWORD PTR DS:[ESI]
PUSH EBX
MOV EDI,EAX
MOV EAX,DWORD PTR DS:[EDX+54]
PUSH ESI
CALL EAX
MOV ECX,DWORD PTR DS:[ESI]
MOV EDX,DWORD PTR DS:[ECX+84]
PUSH jaclib.6C577440 ; ASCII "(III)V"
PUSH jaclib.6C577448 ; ASCII "notify"
PUSH EDI
PUSH ESI
MOV DWORD PTR DS:[6C581084],EAX
CALL EDX
MOV DWORD PTR DS:[6C581040],EAX
CALL DWORD PTR DS:[<&KERNEL32.GetCurrentThreadId>] ; KERNEL32.GetCurrentThreadId
PUSH 0
MOV DWORD PTR DS:[6C581088],EAX
MOV EAX,DWORD PTR DS:[6C58107C]
PUSH EAX
PUSH jaclib.6C564820
PUSH 0E
CALL DWORD PTR DS:[<&USER32.SetWindowsHookExA>] ; USER32.SetWindowsHookExA
MOV ECX,DWORD PTR DS:[ESI]
MOV EDX,DWORD PTR DS:[ECX+84]
PUSH jaclib.6C577230 ; ASCII "(I)V"
PUSH jaclib.6C577448 ; ASCII "notify"
PUSH EDI
PUSH ESI
MOV DWORD PTR DS:[6C581078],EAX
CALL EDX
PUSH 0
PUSH EAX
MOV EAX,DWORD PTR DS:[6C581084]
PUSH EAX
MOV EAX,ESI
CALL jaclib.6C564800
MOV EDI,DWORD PTR DS:[<&USER32.GetMessageA>] ; USER32.GetMessageA
ADD ESP,0C
PUSH 0
PUSH 0
PUSH 0
LEA ECX,DWORD PTR SS:[EBP-1C]
PUSH ECX
CALL EDI
TEST EAX,EAX
JE SHORT jaclib.6C564970
MOV EBX,DWORD PTR DS:[<&USER32.TranslateMessage>] ; USER32.TranslateMessage
LEA ECX,DWORD PTR DS:[ECX]
LEA EDX,DWORD PTR SS:[EBP-1C]
PUSH EDX
CALL EBX
LEA EAX,DWORD PTR SS:[EBP-1C]
PUSH EAX
CALL DWORD PTR DS:[<&USER32.DispatchMessageA>] ; USER32.DispatchMessageA
PUSH 0
PUSH 0
PUSH 0
LEA ECX,DWORD PTR SS:[EBP-1C]
PUSH ECX
CALL EDI
TEST EAX,EAX
JNZ SHORT jaclib.6C564950
MOV EDX,DWORD PTR DS:[6C581078]
PUSH EDX
CALL DWORD PTR DS:[<&USER32.UnhookWindowsHookEx>] ; USER32.UnhookWindowsHookEx
MOV ECX,DWORD PTR DS:[6C581084]
MOV EAX,DWORD PTR DS:[ESI]
MOV EDX,DWORD PTR DS:[EAX+58]
PUSH ECX
PUSH ESI
CALL EDX
POP EDI
XOR EAX,EAX
POP ESI
MOV DWORD PTR DS:[6C581040],EAX
MOV DWORD PTR DS:[6C581078],EAX
POP EBX
MOV ESP,EBP
POP EBP
RETN 8
It just calls java code: void notify(int, int, int); and void notify(int); Benland100 & _Echo said a long time ago that the hooks are just for fullscreen mode. I believe them, but I'd rather see for myself..
I don't know what it does (other than calling the java code) because I didn't have time to actually sift through it and follow all the addresses and jumps. But those hooks actually do exist and you can see it for yourself with OllyDbg and the Phantom plugin. They don't worry me based off of what's been said before.
Btw.. there is NO need for drivers. If Simba used mouse_event instead of SendInput, the mouse and keyboard would be undetectable because the above hooks only have the LLMHF_INJECTED and the LLMHF_LOWER_IL_INJECTED flags set if using SendInput. I never got it to trigger with keybd_event and mouse_event; only SendInput and Post/SendMessage.
I don't see what all the fuss is about.. It's a few bans and NO ONE will figure out what is actually causing them. PB has had waves for months now.. I see no need to panic but then again.. I don't bot lol.