- 博客(57)
- 资源 (46)
- 收藏
- 关注
原创 通过socket得到远端的IP和连接端口
WindowsTCP:通过socket得到远端的IP和连接端口SOCKET acceptSock;acceptSock = accept(listenSock, NULL, NULL);SOCKADDR_IN sockAddr;int iLen=sizeof(sockAddr);getpeername(acceptSock,(struct ...
2019-03-29 18:33:36 6851
翻译 打印主机和服务信息(参数主机名、服务)
#include "include/apue.h"#if defined(SOLARIS)#include <netinet/in.h>#endif#include <netdb.h>#include <arpa/inet.h>#if defined(BSD)#include <sys/socket.h>#include <n...
2019-03-29 18:09:17 426
原创 共享内存进程线程混合通信
多线程共享内存混合编程/*threadWrite线程向共享内存写数据,threadRead线程从共享内存读数据*/ /*读线程必须等待写线程执行完才开始*/ #include<stdio.h> #include<stdlib.h> #include<sys/types.h> #include<sys/unistd.h> #i...
2019-03-29 17:45:39 340
原创 linux C 应用消息队列在两个进程间通信
服务:#include <unistd.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <sys/msg.h>struct msg_st{ long int msg_type...
2019-03-29 17:13:45 1087
原创 管道popen和pclose的实例使用
单次输出/*取得当前目录下的文件个数*/#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <sys/wait.h>#define MAXLINE 1024int main(){ char result_buf[MAXLINE], comma...
2019-03-29 16:52:27 980
翻译 Linux C 存储映射IO
存储映射IO函数说明 mmap#include <sys/mman.h>void *mmap(void *addr,//指定映射区的起始地址。通常设置为0,由系统选择该映射区起始地址 size_t len, //映射的字节数 int prot, //对映射存储区的保护要求 int flag, // int filedes, //被映射文件的...
2019-03-28 20:19:37 216
翻译 利用异步I/O复制文件及详解
AIO 简介Linux 异步 I/O 是 Linux 内核中提供的一个相当新的增强。它是 2.6 版本内核的一个标准特性,但是我们在 2.4 版本内核的补丁中也可以找到它。AIO 背后的基本思想是允许进程发起很多 I/O 操作,而不用阻塞或等待任何操作完成。稍后或在接收到 I/O 操作完成的通知时,进程就可以检索 I/O 操作的结果。I/O 操作。这个 API 的展示显示了如何使用它...
2019-03-28 19:11:30 675
原创 C 控制父、子进程的先后顺序执行
#include "include/apue.h"static int pfd1[2], pfd2[2];void TELL_WAIT(void){ //创建管道 if (pipe(pfd1) < 0 || pipe(pfd2) < 0) err_sys("pipe error");}void TELL_PARENT(pid_t p...
2019-03-28 15:35:28 3072
原创 高级IO,一次读取500000复制文件,输入输出流
#include "include/apue.h"#include <errno.h>#include <fcntl.h>char buf[500000];void set_fl(int fd, int flags) /* flags are file status flags to turn on */{ int val; ...
2019-03-28 15:14:30 56
原创 值得推荐的C/C++框架和库(C/C++开源优质项目)
补充:ffmpeg:是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。OpenCV:是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Li...
2019-03-24 00:30:13 1810
原创 Linux作业控制
在Linux中,利用Shell的作业控制是比较常用的操作,在这一节中我们将探究作业控制相关的操作。为了方便我们查看区分不同的进行,我们编写如下程序,其功能是每间隔2秒输出一次自己的编号。/*** Test puting a running program into backgound*/#include <stdio.h>#include <stdlib.h>...
2019-03-22 18:33:25 339
原创 堆排序、快速排序
时间复杂度一样的都是O(nlog2 n),但貌似堆排序用到的空间比快速排序少(只要一个),那么为什么好像快速排序的应用比堆排序多?堆排序#include <iostream>using namespace std;void Swap(int & left_data, int & right_data){ int auxiliary...
2019-03-21 13:52:58 273
原创 Linux C线程同步的三种方法
带返回值线程的最大特点是资源的共享性,但资源共享中的同步问题是多线程编程的难点。linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量和信号量。
2019-03-20 23:14:02 1329
转载 C++11常用特性的使用经验总结
原创博客,版权所有,转载请注明出处http://www.cnblogs.com/feng-sc)C++11已经出来很久了,网上也早有很多优秀的C++11新特性的总结文章,在编写本博客之前,博主在工作和学习中学到的关于C++11方面的知识,也得益于很多其他网友的总结。本博客文章是在学习的基础上,加上博主在日常工作中的使用C++11的一些总结、经验和感悟,整理出来,分享给大家,希望对各位读者有帮...
2019-03-20 18:08:42 267
原创 关于Linux C multiple definition of‘XXX’的问题
变量前加static关键字。在test.h头文件中。在test.c中定义。在test.h中定义。
2019-03-19 22:20:11 752
原创 C 配置文件
*************打开配置文件************[EMPLOYEEINFO];the name of employeeEmployeeName=wang;the age of employeeEmployeeAge=25[EMPLOYERINFO];;the name of employerEmployerName=zhou;the age of employe...
2019-03-16 23:20:49 780
转载 【精辟】socket阻塞与非阻塞,同步与异步,select,pool,epool
socket阻塞与非阻塞,同步与异步作者:huangguisu1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S...
2019-03-14 23:23:25 845
原创 linux下c/c++实例之socket服务器实例
(1)多线程并发服务器server.c。(4)epool非阻塞服务器和客户端。(3)pool非阻塞服务器和客户端。(2)select非阻塞服务器。
2019-03-14 23:16:09 3054
原创 linux硬链接和软链接的区别
软链接(soft link):A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。a.不能对目录创建硬链接,原因有几种,最重要的是:文件系统不能存在链接环(目录创建时的".."除外,这个系统可以识别出来),存在环的后果会导致例如文件遍历等操作的混乱(du,pwd等命令的运作原理就是基于文件硬链接,顺便一提,ls -l结果的第二列也是文件的硬链接数,即inode节点的链接数)
2019-03-14 22:26:52 421
原创 QT连接MySql
1. 安装QT MySQL驱动将驱动放置目录:2. 数据库表3. 访问添加sqlmain.h#include <QtSql>private: QSqlDatabase db;private slots: void showDatabaseDataSlot();//构造QObject::connect(ui->lis...
2019-03-12 23:32:16 340
原创 用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server如何处理
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 不予理会。修改user表中的Host:update user set Host='%' where User='root';查看user表中的数据:select Host, User,Password from user;查看mysql数据库中所有的表:show tables;进入mysql数据库:use mysql;将相应用户数据表中的host字段改成'%';
2019-03-12 21:04:26 2210 2
原创 MySql 复习SQL基础
1. 显示当前存在的数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema |+-------------------...
2019-03-12 19:43:55 314
原创 CentOS7 正确安装mysql(亲测)
登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
2019-03-12 18:21:47 946
原创 QT 定时关机、共享内存、启动浏览器、浏览器前进后退刷新、进度条、设置浏览器标题、QML入门
定时关机.h#include <QTimer>#include <stdlib.h>#include <QByteArray>//构造函数//system("shutdown -s -t 7200");QString cmd = :shutdown -s -t:cmd+= .....system(cmd.toAssic().data()...
2019-03-12 01:43:30 643
原创 QT 显示中文、解决发布乱码、获得系统特定目录、获取文件属性、列表控件、屏幕截图显示保存(定时器)、视频直播、右键菜单
显示中文#include <QTextCodec>int main(){ QApplication a(argc, argv); QTextCodec::setCodecForLocade(QTextCodec::codecForName("gb2312")); QTextCodec::setCodecForCStrings(QTextCodec:...
2019-03-11 22:36:46 1400 2
原创 QT TextEdit设置背景、明文加密、弹出网站、弹出自定义对话框、gif动态图片、程序启动动画、打包程序、关闭事件
TextEdit设置背景前提必须已添加了资源图片铭文加密ui->passLineEdit->setEchoMode(QLineEdit::Password);弹出网站#include <QUrl>#include <QDesktopServices> //用于访问桌面服务的类QDesktopService::o...
2019-03-11 19:12:39 1043
原创 QT打印窗口、退出、设置字体及颜色、设置时间、控件实现系统函数、添加资源文件(菜单图片)、工具栏添加图片
打印窗口#include <QPrintDialog>退出QObject::connect(ui->exitAction, SIGNAL(triggerd()), this, SLOT(close()));设置字体及颜色#include <QFontDialog>#include <QFont>#include &l...
2019-03-11 18:15:47 647
原创 QT三种窗口、调试终端信息打印、新建菜单、设置窗口标题名称、界面初始化、打开文件对话框、保存文件对话框
三种窗口QMainWindow:主窗口程序(创建菜单)QWidget:部件窗口QDialog:对话框窗口调试终端信息打印#include <QtDebug>qDebug << "not modifed";新建菜单快捷键(Alt+F):文件(&F)#include <QtDebug>priva...
2019-03-11 17:23:32 2185
原创 QT界面布局、系统信号和槽、启动进程、EDIT回车快捷键、正常信号和槽、QMessageBox、UIC使用(界面重新生成)
界面布局ctrl+H :水平布局ctrl+L:垂直布局shift+alt+r:预览设置固定大小F4进入系统信号,鼠标拖拽(F3切换对话框)启动进程#include <QProcess>QProcess *process = new QProcess;QString strProcess = ui->cmdLineEdit-&...
2019-03-11 16:26:32 821
转载 QTCreator2.8.0+Qt Open source 4.8.5环境配置(Win7x64)
开始使用QT了,环境配置好了,以后才不会有这方面的麻烦,所以第一步,把自己的工作环境搭建好!下面是我的环境搭建过程,留个记录,也为了后来者能少走一些弯路。注:本人的系统是WIN7x64位的,其他系统没有尝试过,所以不保证其他系统使用本教程能一帆风顺。1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必须要一个是用QT的编译环境,可以是VS2010,也可以是专用...
2019-03-10 18:35:49 904
原创 C++ 常用设计模式
*1、工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式1)、简单工厂模式:主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。#include "iostream"using namespace std;typedef enum{ T80 = 1, T99}TankType;class Tank{public: virtual ...
2019-03-10 15:25:10 8107
原创 35. 脱壳篇-UPX和WinUpack压缩壳的使用和脱法
UPX官网:http;//upx.sourceforge.netUPX加壳通过cmd窗口执行,进入upx目录,执行:upx.exe fishc.exe或者直接将exe拖至upx.exe上即可UPX脱壳upx -d abc.exe如果作者在导入表等地方修改的话,这种方式就不可以脱壳了,因为他自己都不认识自己了一般情况下,加壳的程序均为 pushad...
2019-03-08 21:23:44 1505
原创 34. 脱壳篇-FSG压缩壳、ImportREC修复IAT输入表的使用,令一种寻找OEP方式
直接将exe拖至FSG进行压缩壳OD打开第一次选择,然后重新加载(Ctrl+F2)这次选择这样结果分析后dump出来,注意:重建输入表不勾选,否则软件崩溃不可用行寻找,我们要引入一个非常优秀的输入表(IAT)修复工具,ImportREC输入OEP输入这两个位置不对,我们输入地址在OD里查询看一下,记得加基...
2019-03-08 16:55:58 2378
原创 33. 脱壳篇-重建输入表
OD自动分析MessageBox,call 004011EA,他是怎么分析知道函数MessageBox打开PE头文件,INT我们要重点关注的字段一个是ImageBase基址,一个是Import Table address导入表地址,这里导入表的地址是基地址+偏移地址在代码区搜索导入表地址分析完如下图查找这两个偏移地址就可以看到dll和函数的地址...
2019-03-08 15:56:41 1019
原创 什么是HOOK功能?
HOOK RECV(),如果你在API头HOOK,此时还没有收到数据,你就去查看RECV()的接收缓冲区,里面当然没有你想要的数据,必须等RECV()正常执行后,在RECV()的尾部HOOK,此时去查看RECV()的缓冲区,里面才有想要的数据;以上几种方法是常用的方法,值得一提的是很多人都是改API开头的5个字节,但是现在很多杀毒软件用这样的方法检查API是否被HOOK,或其他病毒木马在你之后又改了前5个字节,这样就会互相覆盖,最后一个HOOK API的操作才是有效的,所以提倡用第3和第4种方法。
2019-03-08 15:09:26 4077
原创 ubuntu系统debootstrap的使用(构建一套基本的系统)
debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包含了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小很多,当然功能也没那么强大,因此,只能说是“基本的系统”。fedora下(centos亦可用)有类似功能的工具:febootstrap。观察这两个工具名称,...
2019-03-08 13:09:09 4325
转载 Linux服务与chkconfig
chkconfig使用说明chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。chkconfig 提供5个功能:1. 设...
2019-03-08 13:01:00 263
原创 Linux远程拷贝scp命令demo
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
2019-03-08 12:43:44 341
原创 32. 脱壳篇-简单带壳的程序、反调试带壳的程序(堆栈平衡原理找OEP、代码段设置断点)
第一个程序OEP为46B6F9PE头位置为46B000到46D000区间,have a nice day! 就是壳一定要点上箭头指向处,dump改名清除区段 ,删除壳,保存第二个程序(市面上60%-80%)根据堆栈平衡原理寻找OEPF8后到下图位置,但并不是OEP因为地址与PE差别大,壳伪造了我们的text,rd...
2019-03-07 22:29:18 740
原创 25. PE结构-PE详解之资源
资源结构资源是PE 文件中非常重要的部分,几乎所有的PE 文件中都包含着资源,与导入表和导出表相比,资源的组织方式要复杂很多,其实我们只要看下图就知道俺所言不虚。分3级:1 资源类型 ,2 资源ID, 3 资源代码页, 4 最后指向资源我们知道我们的资源有很多种类型,每种类型的资源中可能存在多个资源项,这些资源项用不同的ID 或者名称来区分。但是要将这么多种类型的不同ID 的资源有...
2019-03-05 18:11:46 1131 1
Fortify SCA 20.1.1代码审计
2023-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人