编程随想
文章平均质量分 59
博学、求是、明德
yiyefangzhou24
这个作者很懒,什么都没留下…
展开
-
基于阿里云OSS的轻量级加密粘贴板
QuickClipboard是一个基于阿里云的轻量级加密粘贴板,仅需要简单配置,即可实现和Windows资源管理器交互逻辑相同的复制粘贴体验。原创 2024-07-09 13:24:46 · 303 阅读 · 0 评论 -
如何着手写一个自己的网站管理客户端
WebHole是一款网站管理软件,能通过C/S的工作模式,方便的管理服务器的文件、数据库,并执行命令。原创 2024-03-25 18:05:17 · 388 阅读 · 0 评论 -
论如何设计一款端对端加密通讯软件
论如何设计一款端对端加密通讯软件原创 2023-03-20 13:30:58 · 961 阅读 · 0 评论 -
基于QT的TCP传输拆包和组包算法
该文主要为QT平台下的TCP传输的拆包组包算法,也同样适用于Libevent、muduo等非阻塞的基于事件驱动的网络模型。原创 2022-12-22 23:32:36 · 2449 阅读 · 2 评论 -
基于鸿蒙ArkUI的eTS范式开发的仿微信界面程序
HMWeChat(HarmonyOS WeChat)是基于鸿蒙3.0的ArkUI开发的仿微信界面,使用的是eTS开发范式,基于鸿蒙SDK3.0(API Version 7)。原创 2022-05-17 14:56:21 · 1642 阅读 · 7 评论 -
手撸了一个基于Libevent网络库的即时通信服务器
项目地址:项目地址因对Android不太熟悉,客户端暂时没写。有熟悉Android客户端开发的同学可以微我,合作开发一个客户端,没别的爱好,就是玩儿。微信ID:to_be_listenerPangolinIM介绍PangolinIM是一款端对端加密的即时通讯工具。有服务器端和安卓客户端,支持文本消息、图片发送、文件发送、语音发送。特点PangolinIM是一款端对端加密即使通讯工具,服务器不存放消息明文。通讯逻辑分2种方式:1.如通讯双方均在线。服务器仅仅做消息转发(依托原创 2021-10-18 14:30:36 · 470 阅读 · 0 评论 -
【算法分享】基于WinSocket的TCP分包组包传输算法
笔者不再赘述分包组包算法是什么和为什么了,直接上代码,注释已经写的非常完整了,也希望大家测试使用,并提出好的建议。凡是有关提交bug、性能提升、算法优化方面好的建议,可以直接在本文下留言,或者私信作者,邮箱:yiyefangzhou24@qq.com。// #// # WinSocket TCP协议 分包组包算法// #// # 文件名socket.h// #// # 作者: yiyefangzhou24// # 修改时间: 2021/5/14// #// #原创 2021-05-16 14:23:10 · 1100 阅读 · 0 评论 -
基于Windows平台远程桌面 - 分块异或屏传算法的设计与实现
本文介绍一下基于Windows GDI的远程桌面传输。远程桌面方法其实很简单,无外乎GDI截屏->socket传输->GDI画图这三大步骤,但实际上比较麻烦,最难解决的就是截屏后图像太大的问题,以1920*1200像素的屏幕分辨率为例,截屏一张24位的bmp位图,大约需要8M左右字节,连续截图产生的数据量会给socket带来巨大的压力。也有人说可以在GDI截屏之后直接将数据压缩为jpg图像再传输,实践发现存在两个问题:1、压缩后一张图片的大小约为200K-300K,连续截屏的情况下,socket原创 2021-04-24 22:27:44 · 1736 阅读 · 0 评论 -
完善duilib的List控件显示SHGetFileInfo获得的系统图标
duilib没有支持对系统图标HICON句柄的直接显示,需要修改底层,简单记录一下解决过程找到Control\UIList.h文件在对应的控件中添加一个SetIcon函数,我这里需要用的是CListTextElementUI控件,找到CListTextElementUI类,修改为class DUILIB_API CListTextElementUI : public CListLab...原创 2019-12-03 11:47:02 · 596 阅读 · 1 评论 -
有关于mfc webbrowser插件的使用
最近写的东西中常常需要嵌入一些浏览器,微软提供了一个比较好的接口,可以在MFC写的程序中嵌入一个简易的浏览器,是以ActiveX插件的形式提供的接口,使用起来也比较的方便,这里我就简单记录下这个插件的使用这里我用vc6为例吧,我的机器太烂,跑不动vs这种巨人级别的软件。首先创建一个对话框,在对话框上右击插入ActiveX的插件可以看到微软提供了很多ActiveX的插件供我们选择原创 2014-05-14 09:01:33 · 21530 阅读 · 3 评论 -
MFC中获取命令行参数的几种方法
步骤/方法 方法一 ::GetCommandLine(); 将获取到 "C:\test\app.exe" -1 -2 方法二 for (int i=0;i { __argv[i]; 将依次得到C:\test\app.exe -1 -2 } 方法三 AfxGetApp()->m_lp转载 2015-05-02 21:15:45 · 723 阅读 · 0 评论 -
java知识体系图
转载 2016-02-16 14:52:01 · 2314 阅读 · 0 评论 -
自己动手之WPscan windows版 (wordpress scan)
个人总觉得kali的wpscan不够实用,扫描不够全,索性自己写一个原创 2016-08-27 16:42:01 · 6608 阅读 · 0 评论 -
链表操作类
typedef struct SocketInfo{ char IPAddress[20]; //IP地址 SOCKET hSocket; //socket句柄 char cpName[128]; //计算机名 char wVersion[64]; //操作系统版本 SocketInfo * next; //下一个节点指针private: SocketInfo * head;}原创 2016-10-23 11:47:19 · 524 阅读 · 0 评论 -
UDP分包组包的类
分享一个自己写的udp分包组包的例子,一个包以32768为单位分包,每个包有序号,如果乱序或者是缺少,直接舍弃。(有点浪费资源)如果是要实现一个资源发送过程中乱序的重组,请自己修改吧,什么冒泡排序之类的。我就懒得写了。声明:typedef struct UDPData{ unsigned int index; //包序号 unsigned int part; //块总数 unsig原创 2017-03-19 21:35:16 · 4839 阅读 · 2 评论 -
链表栈操作类
commend.h#include "afx.h"typedef struct cmddata { char cmd[1024]; int uid; cmddata * next; //指针域 }cmddata; class commend{public: commend(); ~commend(); int pushcmd(CString c原创 2017-05-15 19:58:33 · 466 阅读 · 0 评论 -
TeamTalk部署详细过程(跳过各种坑)
一、部署环境系统:centos7 X64位(32位不支持)核心版本二、部署过程项目下载地址https://github.com/mogujie/TeamTalk.git,这个项目已经是三年前的版本,其中有部分脚本的地址已经404了,也就是mariadb中的源部分,部署的时候需要修改。我修改了一下,上传到我的gitee的代码仓了,供大家使用。cd /optgit clone ht...原创 2018-09-28 12:28:03 · 10601 阅读 · 1 评论 -
一个基于PHP的非长连接通讯软件的设计与实现
突发奇想想要实现一个基于PHP的通讯软件,和传统的基于socket的通讯软件相比缺点:非实时通讯,服务器被动式传递数据,运行成本更高。 优点:开发周期短,维护成本低。服务端:服务端采用ThinkPHP作为MVC架构,对即时消息、联系人管理、登陆注册三大模块进行接口设计,与客户端通讯统一采用json格式输入输出。消息存储、凭据保存使用Mysql数据库和ThinkPHP缓存进行存储。对...原创 2019-09-18 13:52:05 · 364 阅读 · 0 评论 -
SOCKET双向数据传送代码
//************************************************************************************// 功能:监听本地1080端口数据,进行代理转发// 服务端:可采用squid进行HTTP代理// Socket Transmit to Socket////****************************...原创 2019-09-25 18:38:36 · 584 阅读 · 0 评论 -
一个MFC释放资源的类
分享一个释放资源的类BOOL CLinuxShellDlg::ReleaseRes(CString strFileName, WORD wResID, CString strFileType){ DWORD dwWrite=0; // 创建文件 HANDLE hFile = CreateFile(strFileName, GENERIC_原创 2013-12-01 15:21:48 · 2970 阅读 · 0 评论 -
针对函数的多线程inline API HOOK
Inline API HOOK方法有很多,常见的一种方法无需内嵌汇编语句,原理简单易懂,针对64位微软操作系统不允许内嵌汇编这种无解的事比较给力(列宁大神提供的消息,本人未亲自尝试)。下面简单说一下这种方法的原理。 首先说一说inline HOOK的原理,具体的资料上说的很多了,我只是想提一下核心的技术实现,主要是修改映射到内存的api函数的执行代码的第一条指令(一般是第一条指令)原创 2012-04-30 08:30:36 · 6251 阅读 · 5 评论 -
关于如何读取指定对话框输入框中内容
最近在论坛上看到一个帖子,读取输入框中的内容,我也正在做这方面东西,于是就动手做了一下,原本以为很简单的东西,实际着手去做的时候倒是遇到了不小的麻烦。 首先想要获得一个未知的对话框的EDIT控件的内容无非就是几个步骤:1,获得所要获得内容的句柄2,获得控件句柄3,获得原创 2011-07-22 09:00:08 · 1682 阅读 · 0 评论 -
浅析输入法原理
首先我们要知道什么是输入法,我们经常用输入法,但是你发现一个现象没有?,在任务管理器中并没有看到输入法进程。当然了搜狗那种流氓软件除外,说不定正在后台做什么偷偷摸摸的事情,当然要创建进程。输入法的核心文件你找到安装目录就会发现一个后缀是.ime的文件,你用十六进制查看器看看就会发原创 2011-07-25 16:33:52 · 12667 阅读 · 4 评论 -
浅析QQ密码保护原理
<br /> 好久没写博客了,只因为最近一段时间着手学习网络入侵与渗透这块,正好借了一个大学生创业孵化基地的项目,也申请了一个关于“蜜罐”设计的科研立项,准备一起给做了,由于刚刚踏入未知领地,也没什么好说的,让我在这个领域摸黑探索一会再和大家分享我的学习历程。<br /> 今天来写一篇博客,也是好久前的了,一直拖着没写,这篇博客的内容也正是我大概一个月前的《黑客防线》的投稿,可能是运气有点好吧,这篇文章拟发《黑客防线》2011年第5期,还没有出来,快了,10号左右吧。另外想说的一句是黒原创 2011-05-07 09:40:00 · 5976 阅读 · 8 评论 -
关于RegQueryValueEx两个小问题
RegQueryValueEx无法获取长的键值名;如何读出REG_DWORD值.原创 2011-05-31 14:16:00 · 14157 阅读 · 5 评论 -
NtQueryInformationProcess用法
<br /> 从所周知,在Windows NT/2000系统的API黑洞之一便是NTDLL.DLL,此DLL包含了许多未公开的API函数。本文将列举一、二,并以如何获取任何指定进程的父进程ID为例作为示范。<br /> NTDLL.DLL中有一个函数叫NtQueryInformationProcess,用它可以将指定类型的进程信息拷贝到某个缓冲。其原型如下:<br />NTSYSAPI<br />NTSTATUS<br />NTAPI<br />NtQueryInformationProces原创 2011-03-12 08:51:00 · 20616 阅读 · 0 评论 -
关于R3下的自身进程守护
<br /> 一大早的来到图书馆还把我的本本抗来了,就为了写一篇博客。<br /> 这个博客其实说来挺愧疚的,原理搞错了,却也实现了预期之外的功能,如题R3下的自身进程守护。<br /> 昨天下午和“列宁”交流了一下午,才发现原来我本来的构想就是错误的,我本想挂钩Terminateprocess的函数达到禁止制定进程被结束的,但是意外的把挂钩的原理搞错了,程序倒是写了一堆,就是不能实现功能。把我给急的,后来昨天下午偶遇高人“列宁”,探讨了一下午,我终于搞清楚我的错误在哪里,(其原创 2011-03-13 08:54:00 · 2736 阅读 · 0 评论 -
SSDT HOOK禁止指定进程结束
经过两个星期的折腾,SSDT HOOK终于成功了,在这里首先感谢论坛里的一位大神,真的是非常感谢,他的ID是什么记不得了,加了他的好友,记得他的名字下面写着列宁两个字,呵呵很有趣的名字啊,想加的人可以看一看我发的帖子。 这里闲扯淡两句,论坛里的大神级别的人物还是不少的,我们不能用等级来衡量一个人的知识水平,就像那天看到一个急聘c++高级程序员的帖子,两星级以上的用户优先录取,我觉着吧,这是不明智的举动,我认识的那位内核大神就是五裤衩的裤衩级用户。有人说的对,裤衩级的大神多得是,星级的菜鸟也到处都是。原创 2011-03-08 09:35:00 · 3135 阅读 · 0 评论 -
一个获取系统服务索引号的小工具
好久没写博客了,最近想抽点时间补上之前的东西,有些东西要记录下来,以后看了会觉得很有意思。这个小工具没有什么可以说的,直接vc编译连接就可以用了。下面附上代码:#include "stdio.h"#include int main(){ printf(原创 2011-09-25 15:14:53 · 2198 阅读 · 0 评论 -
如何让win32 Application显示输入框
很多人纠结如何在win32 application下显示一个类似这样的输入框。而win32下又不兼容MFC的内容怎么办?可能我们就需要自己写这个对话框了。首先将这个对话框画好作为资源保存到我们的win32程序中,具体做法如下:1, 创建一个空的win32 Application程序。2, 点击菜单栏上的Insert(插入)->Resource(资源),选择对话框资源,然原创 2012-04-14 15:40:41 · 7686 阅读 · 1 评论 -
深入解析PE文件结构之导出表获取
新学期新气象,一般是小学作文的开头,在此引用一下。最近有时间坐下来仔细研究一下PE文件结构了,以前遇到这种问题时总是拆东墙补西墙。学的不够透彻。几天来一番研究之后,和大家分享一下。PE的文件结构从DOS头开始,其主要作用就两个一个是若是在DOS环境下输出一句话。另一个作用就是找到PE文件头的位置,这是我们要关心的,本文只注重所要关心的问题——导出表。和一些你再众多网上资料上很难找到的细节,原创 2012-02-17 16:58:44 · 10404 阅读 · 2 评论 -
CreatRemoteThread线程注入
线程注入有很多种方法,有最简单也最方便安全的SetWindowsHookEx的钩子注入,也有代码简洁的远程线程创建注入。这种方法构思巧妙,但是个人觉得直接硬写目标进程内存空间有一定风险,可谓差之毫厘,谬以千里。本菜鸟这个程序调试了很长时间才成功的,大牛请勿发笑。CreatRemoteThread从字面意思上不难理解,创建一个远程线程,所以我们可以用他在目标进程中创建一个线程,立即执原创 2012-02-24 18:02:23 · 6940 阅读 · 0 评论 -
关于如何获得文件关联在注册表中位置
其实是一个比较容易的问题,我来分享一下我的做法。所有的操作都是在HKEY_CLASSES_ROOT根键中,先来看一下图前面看到的. fif .exc .ffl等等都是一些文件后缀名,比如exe文件的后缀就是.exe,打开它我们会看到默认键值下的内容是exefile: 那么我们就得到了关联exe文件的注册表项名称就是exefile,同样是在HKEY_CLASSES_R原创 2012-02-21 17:20:43 · 6216 阅读 · 0 评论 -
WH_DEBUG钩子
以前在学习钩子的时候对于WH_DEBUG这个类型很是不解释,不知道它是做什么用的,在网上找了一找,发现也没有什么有价值的文章。在逆向分析“热血江湖”突然发现WH_DEBUG竟被用来进行反键盘记录(这是老版本,现在的版本已经用了最新的技术,原理没弄明白,哪位要是弄明白了,希望可以指点一下)。仔细研究了一下,弄明白了其中的原理,现在就介绍给一下。首先要将WH_DEBUG介绍一下。WH_DEBUG为转载 2012-02-07 10:59:30 · 3580 阅读 · 0 评论 -
MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
combo box控件用法:下拉选择控件,首先将控件拖动到你需要使用控件的地方,用ClassWizard为它关联一个变量,我们注意到变量类型是CString型的。右击属性,General中可以设置一般属性类容Data中可以设置该控件下拉选择的内容,Styles中设置combo box控件风格,Extended Styles设置扩展风格,主要的设置在Data中,Data中设置了下拉菜单的所有下拉原创 2012-01-11 13:30:53 · 20573 阅读 · 4 评论 -
IE passview介绍 IE自动填充原理
论坛上一个大牛推荐的一个文章,新手拜读(英语不好找goole在线翻译): E PassView v1.26 - Recover lost passwords stored by Internet Explorer Copyright (c) 2006 - 201转载 2011-10-09 16:45:45 · 4017 阅读 · 0 评论 -
一个简单嗅探器的实现
这是最近的一段代码。也没有什么好说的,简单的socket编程,设置网卡为混杂模式,接受所有封包,并打印所有封包的基本信息,及内容。#include#include#include#include#include#pragma comment(lib,"原创 2011-09-25 16:31:55 · 6788 阅读 · 5 评论