c++下基于opengl实现的运动的小汽车,一个简单的小例子,很适合初学opengl的同学,带注释。
简单的画点画面以及一些入门的函数例如键盘回调函数定时器等等。
2025/11/1 5:14:32 224KB OpenGL 小汽车 运动
1
笔者曾混迹过各种攻防演练活动,参与过防守方、攻击方,也算是大概了解了每一个队伍的任务~参加防守时印象尤为深刻,也跟一起防守的“战友”做过有趣的事情,例如:反打攻击队;
题外话说的有点多了,来说说为什么开发这样一个平台:作为一个防守方光看日志固然是枯燥无味的,偶尔来几次反向打击啥的,增添防守的乐趣~所以我想到了做这样一个系统,就是想在“空暇”时间能获取点“黑客攻击者”的“画像”。
本平台采用被动式的方式分析黑客攻击者画像,可扩展赋能蜜罐以及安全设备,将平台接口部署在蜜罐Web界面上即可,当攻击者访问所部署的Web界面即触发平台分析功能,对访问者进行分析,数据回传平台分析其网络身份、IP、IP定位:物理地址等信息。
AHRID信息展示平台支持接口授权的方式授权站点,已授权站点才可使用平台接口进行被动式的攻击者画像分析以及数据回传。
AHRID接口授权平台的分析功能采用模块化设计,可针对不同的分析功能新建不同的分析模块进而让平台的分析功能更加丰富完善(开源版本目前只支持JSONP探针模块)AHRID提交模块AHRID开源版使用授权使用登录进AHRID平台之后需要先添加接口授权:AHRID接口授权当添加完毕后,复制接口代码至蜜罐页面或需监测的页面中即可(建议复制到最后),这样就已经部署成功了,只需要等待攻击者触发数据回传功能,等待画像信息即可。
模块提交当已经发现一个JSONP劫持漏洞时,即可提交到AHRID平台上:JSONP劫持漏洞漏洞地址:http://my.website/dorabox/csrf/jsonp.php?callback=test要获取的信息:username模块提交说明:1.名字模块名字(建议使用英文)2.SRC存在JSONP劫持漏洞的URL地址3.回调参数值回调参数的值(参数=值)4.数据字段JSON字段(例如:{"username":"123"},要获取的是username即填写username;
例如:{"data":{"uid":"123"}},要获取的是uid即填写data.uid)5.信息展示地址一般填写无或者随意填写6.模块描述根据模块功能说明AHRID模块提交示例AHRID开源版设计概述当攻击者访问到部署了AHRID接口的页面,即触发JSONP探针获取攻击者已登录状态下的登录信息,回传登录信息+IP+UA,后端会对IP进行物理地址转换,最终将数据记录到数据库。
数据库结构表:Admin-列:id,username,password表:Hackinfo-列:hid,host,ip,user_agent,jsondata,creaye_time,times表:Plugins-列:pid,name,src,callback,columns,url,commit表:Apis-列:aid,hostIP地址转换依赖:GeoLite2-City.mmdbIP定位依赖:接口apis.map.qq.com、way.jd.com+取中心点依赖环境:Python2+Flask+Mysql所需网络环境:互联网(可出网)AHRID开源版搭建1.config.py配置文件修改需要配置的信息如下:USERNAME:Mysql用户名PASSWORD:Mysql用户密码HOST:Mysql主机地址PORT:Mysql端口SECRET_KEY:SESSION秘钥(建议16位以上随机英文字母+数字+特殊符号)TX_KEYS:腾讯接口KEYS(2个以上,参考:https://lbs.qq.com/webservice_v1/guide-ip.html)JCLOUD_KEY:京东云接口KEY(Github可白嫖)2.Mysql创建“ahrid”数据库3.执行如下代码pythonmanage.pydbinitpythonmanage.pydbmigrate4.启动服务:sudopythonapp.py默认端口为:80,可自行修改app.py文件如下代码部分server=pywsgi.WSGIServer(('0.0.0.0',80),app)
2025/10/29 11:37:37 57.82MB 威胁情报 黑产对抗 网络安全 信息安全
1
原理文章:https://kunnan.blog.csdn.net/article/details/104796781功能:采集电子签名,支持签名界面为横屏其余页面都是竖屏、清除重写、灵活控制提示语信息、以及查看商户协议核心原理:只旋转特定的屏幕核心步骤:1、viewWillAppear设置横屏2、viewWillDisappear设置竖屏用法简单采用block回调电子签名图片
1
配送一个自己写的串口驱动程序用DMA接收数据接收完会产生一个空闲中断由此可判断接收完一个包的数据再配送一个我自己写的动态内存管理跟ESP8266的驱动在项目中测试460800的波特率30kb一秒的数据接收一包1024个字节每包需要应答15字节的情况下AT指令处理是使用多个缓冲级来处理模块发送过来的数据分别有模块应答缓冲级跟等待应答的缓冲级、被忽略的AT指令集的缓冲级(例如注册一个SENDOK\r\n则模块应答此条指令立刻清除缓冲级释放内存无需等待超时直接忽略)还有需要回调的缓冲级(则出现此指令调用回调函数)都是通过注册的方式来实现如果出现一包跟指令被分到一个包内AT处理函数一样可以搜索到AT指令使用strstr函数来实现函数的缓冲级都是指针不占用内存使用动态内存管理的方式有数据则创建内存放入数据作为一个缓冲级如果模块应答的数据在规定的时间内没有响应则删除此缓冲级函数前都有注释介绍下面介绍一些常用的函数:at_init初始化一些变量已经串口at_time_task使用定时器回调1毫秒回调一次用来计数超时的指令缓冲&等待超时的计数at_clear_all在模块开机的时候可能会有很多乱数据可以在初始化完毕后使用此函数清除所有缓冲级释放所有内存at_processing处理AT的应答超时的指令(做删除释放内存的动作),还有处理等待的AT指令此函数一定要不断循环处理可以加入到定时器目前我实验是在UCOS上的所以直接创建个任务来执行此函数当程序在等待某个AT指令的时候此函数会寻找接收的缓冲级是否有等待的AT指令at_cmd_cb_hand回调处理函数如果接收缓冲级出现某个已经注册的指令则回调注册时所填写的函数地址at_send_cmd发送一个AT指令可以用跟printf一样使用%d等等at_send_data发送数据的时候所使用需要填写长度at_cmd_ignore_register注册一个被忽略的AT指令带入参数*s(例如填写一个"SENDOK"则模块应答的此条指令直接被忽略释放内存被忽略之前会检查此缓冲级会不会带有别的AT指令需要回调的)at_cmd_ignore_cancel取消被忽略的指令则取消已经注册的被忽略的AT指令at_cmd_cb_registerAT指令的回调注册例如参数填写"+IPD",函数名a则出现+IPD的时候回调a函数a函数有类型在at.h文件里面有at_cmd_cb_cancel注销回调你懂得at_wait_cmd等待一个AT指令集或者超时则立刻返回等待途中会不断调用OS的延迟程序让系统能有时间去执行其他任务使用方法例如{at_send_cmd("AT+UART=%u,%u,%u,%u,%u\r\n",baudrate,databit,stopbit,parity,flow_control);return(esp_error)at_wait_cmd("\r\nOK\r\n",2000,NULL);}at_errorat_wait2_cmd(char*s,char*s2,u16timeout,u8*index)此函数是等待两个AT指令集如果出现一个则立刻返回返回值h文件有介绍AT_DONE则出现此条指令index参数则提取应答的缓冲首地址使用at_buf_get函数获取首地址使用完后要调用at_free_buf来清除并释放这个缓冲级at_buf_len_get查询此应答的缓冲级长度如果在index填写NULL则不需要缓冲级首地址直接清除释放缓冲级
1
一个跨平台的C++日志库,包含技术点如下:1.支持异步线程写日志2.跨平台、线程安全3.回调机制4.单例5.模板类
2025/9/30 7:29:31 341KB C++ 跨平台 日志库
1
rosmove_base提供了actionlib的服务,用户可以通过该服务来设置一系列导航位置点,该例子提供了c++的一个实现,通过使用相应的回调函数,用户还可以随时取消不需要的导航点。
2025/9/24 21:54:17 3KB 机器人ros 导航
1
因公司业务需要,对接腾讯IM,功能包含帐号导入帐号,发单聊消息之前回调,发单聊消息之后回调,单发单聊消息
2025/9/4 0:55:49 6KB 腾讯云 im
1
基于C++控制台窗体绘图(GDI)的小游戏,俄罗斯方块,回调函数处理消息,有完整的实现逻辑,包括计分关卡机制,下一个方块预览,游戏文字说明等
2025/8/4 9:41:44 40KB 俄罗斯方块
1
pyqt4精彩实例讲解,适合pyqt4初级学习者,经供参考第6行创建了一个QPushButton对象,并设置它的显示文木为“HelloKitty!",由于此处并没有指定按钮的父窗体,因此以自己作为主窗凵第7行调用show()方法,显示此按钮。
控件被创建时,默认是不显示的,必须调用show()区数来显示它。
第8行的connect方法是αt最重要的特征,即信号与槽的机制。
当按钮被按下则触发clicked信号,与之相连的APplication对象的槽quit(响应按钮单击信号,执行退出应用程序的操作。
关于信号与槽机制在本实例最后将进行详细的分析。
最后调用APplication的exec()方法,程序进入消息循环,等待可能输入进行响应。
Qt完成事件处理及显示的工作,并在应用程序退出时返叫exec_Q)的值最后执行程序即可出现上图所示的对话框,一个简单的HelloKitty!例子完成。
信号与槽机制作为αt最重要的特性,提供了任意两个Qt对象之间的通信机制。
其中,信号会在某个特定情况或动作下被触发,槽是用于接收并处理信号的函数。
例如,要将一个窗口中的变化情况通知给另一个窗口,则一个窗口发送信号,另一个窗口的槽接收此信号并进行相应的操作,即可实现两个窗∏之间的通信。
这比传统的图形化程序采用回调函数的方式实现对象间通信要简单灵活得多。
每个Qt对象都包含预定的信号和槽,当一某一特定事件发生时,一个信号被发射,与信号相关联的槽则会响应信号完成相应的处理。
信号与槽机制常用的连接方式为connect(Object1,SIGNAL(signal),Object2,SLOT(slot)signal|为对象Object1的信号,sot为对象Object2的槽,Qt的窗口部件都包含若十个预定义的信号和若干个预定乂的槽。
当一个类被继承时,该类的信号和槽也同时被继承。
开始人也可以根据需要定义自己的信号和槽。
信号与槽机制可以有多种连接方式,下图描述了信号与槽的多种可能连接方式。
Object1Object2signal1si巴nallsignal2SeFa2slot1slot1lot2Object3signal2slot1slot2个信号可以与另一个信号相连connect(object1,SIGNAL(signal1),Object2,SIGNAL(signal1))即表示Object11的信号1发射可以触发Object2的信号1发射2.表示一个信号可以与多个槽相连connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2))connect(object1,SIGNAL(signal2),Object3.SLOT(slot1)3表示同一个槽可以响应多个信号connect(object1,SIGNAL(signal2),Object2,SLOT(slot2))connect(object3,SIGNAL(signal2),object2,SLOT(slot2))注:本文基本上是经过改编的《Linux窗口程序设计-Qt4精彩实例分析》一书的PyQt4forwindows版本可以这么写:bclicked.connect(app.quit)这样就少了一些hardcode的字符串了,更加pythonic实例2标准对话框的使用分类:-PyQ42010-12-0310:342105人阅读评论(2)收藏举报和人多数操作系统一样,Windows及Linuⅹ都提供了一系列的标准对话框,如文件选择,字体选择,颜色选择等,这些标准对话框为应用程序提供了一致的观感。
Qt对这些标准对话框都定义了相关的类,这些类让使用者能够很方便地使用标准对话框进行文件,颜色以及字体的选择。
标准对话框在软件设计过程中是经常需要使用的。
αt提供的标准对话框除了本实例提到的,还有QErrorMessage,QInputDialog,QMessageBox,QPrintDialog,QProcessDialog等,这些标准对话框的使用在本书的后续部分将会陆续介绍。
本实例主要演示上面几种标准对话框的使用,如下图所示Standarddialog文件对话框颜色对话框字体对话框Hellowor1l!在上图中,单击“文件对话框”按钮,会弹出文件选择对话框,选中的文件名将显示在右连,单击“颜色对话栏”按钮,会弹岀颜色选择对话框,选中的颜色将显小在右边,单击“字体对话框”按钮,会弹出字体选择对话框,选中的字体
2025/7/21 7:51:31 1.66MB pyqt pyqt4 按钮悬 pyqt4精彩实例
1
《构建Wireshark风格的网络抓包与分析工具——基于vc++6.0及WinPCAP库》网络抓包与分析是网络安全、系统优化、故障排查等领域的重要技术手段,而Wireshark作为业界广泛使用的开源工具,为用户提供了一种强大且直观的方式来查看网络通信的细节。
本文将介绍如何使用vc++6.0编程环境,结合WinPCAP库,开发一个类似Wireshark的网络数据包捕获与分析工具。
理解WinPCAP库是关键。
WinPCAP(WindowsPacketCapture)是MicrosoftWindows平台上的一个开源网络数据包捕获和网络监视系统,它允许应用程序访问网络接口的底层数据传输。
通过WinPCAP,我们可以实现对网络流量的实时监控,获取原始的数据包,并进行解析和分析。
在vc++6.0环境下,我们需要进行以下步骤来构建这个工具:1.**项目设置**:创建一个新的MFC应用程序,选择“对话框”模板,因为我们的目标是创建一个带有用户界面的工具。
2.**引入WinPCAP库**:下载并安装WinPCAP开发库,然后在项目的“配置属性”中添加WinPCAP头文件和库文件的路径。
3.**初始化WinPCAP**:在程序启动时,我们需要调用`wpcap_init()`函数初始化WinPCAP库,然后通过`pcap_open_live()`函数打开一个网络接口,以便开始捕获数据包。
4.**数据包捕获**:使用`pcap_loop()`或`pcap_next()`函数持续监听网络接口,每当有新的数据包到达时,这些函数会调用预定义的回调函数,将数据包传递给我们的程序进行处理。
5.**数据包解析**:解析捕获到的数据包需要理解网络协议栈的工作原理。
TCP/IP协议族包括链路层、网络层、传输层和应用层,每层都有各自的头部结构。
例如,以太网头部、IP头部、TCP或UDP头部等。
使用WinPCAP库提供的`pcap_pkthdr`和`pcap_pktdat`结构体,我们可以获取到每个数据包的头部信息和载荷数据。
6.**显示和分析**:根据解析结果,将数据包的关键信息(如源/目的IP、端口、协议类型、时间戳等)展示在对话框的列表控件中。
更进一步,可以实现协议分析功能,如TCP流重组、HTTP请求内容查看等。
7.**过滤功能**:Wireshark的一个显著特性是强大的过滤器。
我们可以实现自定义的过滤规则,让用户能够筛选出特定类型的数据包。
这通常涉及解析头部信息并应用逻辑条件。
8.**文件导出**:为了便于后续分析,提供数据包导出功能是必要的。
可以将捕获的数据包保存为Wireshark通用的pcap格式,以便在Wireshark或其他支持该格式的工具中打开。
9.**错误处理和优化**:确保程序在遇到错误时能够适当地通知用户,并提供关闭捕获、释放资源的选项。
此外,考虑性能优化,比如限制捕获速率,防止过度占用系统资源。
通过以上步骤,我们可以构建一个基本的网络抓包与分析工具,尽管功能可能不及Wireshark全面,但对于学习网络协议、理解数据包结构以及进行简单的网络调试来说已经足够。
随着深入学习和实践,可以逐步增加更多高级特性,使工具更加实用和专业。
2025/7/12 13:32:43 4.66MB 网络数据报抓取 分析工具 Wireshark
1
共 215 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡