自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(152)
  • 资源 (19)
  • 问答 (1)
  • 收藏
  • 关注

原创 清理草稿箱

把之前保存到草稿箱里的文章一股脑地全都发出来了,按照之前的习惯本应该直接删除的,但是这次没有,旨在保存一些之前幼稚的想法。

2020-09-14 10:29:07 288

原创 逆向目录

https://blog.csdn.net/Hello_MyDream/article/details/106505072汇编学习一https://blog.csdn.net/Hello_MyDream/article/details/106515598JCChttps://blog.csdn.net/Hello_MyDream/article/details/106515648汇编学习二https://blog.csdn.net/Hello_MyDream/article/details...

2020-06-05 15:36:00 24774

原创 CSDN写文章离开电脑时一定要记得保存及其他注意事项

1. 写文章离开电脑时一定要记得保存,有些浏览器采用了动态地刷新方式,你博客没有命名,CSDN系统有时就无法自动保存,浏览器一刷新,刚刚写得内容就没有了一. 一。2. 需要慎用Ctrl + z撤销,不仅撤销长度多大,而且至今还未找到反撤销。。。...

2019-02-01 13:23:26 24577

原创 vim配置

"" __ __ " __ __/_/___ ___ ____ / /_ _______" \ \ / / / __ `__ \/ __ \/ / / / / ___/" \ V / / / / / / / /_/ / / /_/ (__ )" \_/_/_/ /_/ /_/ ,___/_/\____/____/" /_/"

2021-03-25 11:54:19 251

原创 C/C++面试题

一.为什么构造函数不能使用virtual关键字修饰?1、虚函数是为了迟绑定吧,为什么要迟绑定?因为好多行为编译期确定不了,需要运行期确定并调用合适的函数去完成相应的功能。但是对象构造的行为是确定的,不管是不是多态,只要有new Object()这种动作,就一定会沿着继承的顺序依次执行对象的构造。这种确定的没有必要的事情,编译器开发的时候也就不会考虑这种机制。2、构造函数是用于创建对象的,而虚函数是对象创建后地址存在虚函数表中的,此时对象尚未创建,无法使用虚函数。实际上我是不认可第二个回答的

2020-10-23 19:49:53 259

原创 08-翻金币游戏

mianscene类:游戏的开始界面mypushbutton类:为开始按钮和返回按钮封装的无边框的按钮控件chooselevelscene类:选择游戏关卡的界面playscene类:游戏的出场景mycoin类:为金币封装的按钮dataconfig类:游戏配置类mainscene.h#ifndef MAINSCENE_H#define MAINSCENE_H#include <QMainWindow>#include "chooselevelscene..

2020-10-22 16:12:23 523

原创 在windows2003上安装服务时出现需要xxx文件的问题

这是修改过硬盘编号导致的,将d改为e(原来改变的编号)即可。

2020-10-01 17:36:30 227

原创 02 Linux进程间通讯

进程间通讯( IPC:Inter Processes Communication )一. 管道(PIPE)管道是一种特殊类型的文件,在应用层体现为两个打开的文件描述符。 对于管道本身而言,不是普通的文件,不属于某个文件系统,其只存在于内存中;对于通讯而言,管道是半双工的通讯方式,数据在同一时刻只能在一个方向上流动;对于使用而言,管道没有名字,只能在具有公共祖先的进程之间使用。1. ...

2020-09-14 10:25:05 109

原创 学习 Qt 编程的好书精品推荐!

学习 Qt 编程的好书精品推荐!最近一段时间,准备开始搞Qt方面的东西,想找几本书看看。网上介绍QT的书籍也有很多,不想浪费时间,所以想找几本精品的书籍来看。花了半天的时间找了几本非常不错的,这里面整理好之后推荐给大家!下面介绍的几本书可以说每本都不错。不过放在这一堆大家也不知道先看哪个,后看哪个?所以这块给大家列举一下学习的顺序:由浅入深。大家也可以根据自己对于Qt方面的热衷程度与想要学...

2020-09-14 10:24:34 9876 1

原创 libevent基本用法

根节点1. struct event_base *event_base_new(void); //创建红黑树根节点成功返回结构体指针,失败返回NULL。2. void event_base_free(struct event_base *base); //释放开辟的根节点内存事件循环1. int event_base_loop(struct event_base *base...

2020-09-14 10:21:05 323

原创 01 Linux系统编程基础——进程

一. 概念1. 并行与并发:区分的关键点是“同时”。并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果。即宏观上同时,微观上交替执行。2.进程控制块PCB进程运行时,内核为每个进程分配一个PCB(进程控制块),维护进程相关的...

2020-09-14 10:19:59 126

原创 C语言常见问题总结

一.为什么不能在变量声明时对其进行赋值?变量的声明为:在变量已经存在的情况下,去告诉别人这个变量的存在。变量的声明不会再给变量开辟空间了。二.数组的下标为什么从0开始?1. 数组的出界点即代表数组元素个数,出界点不在数组下标范围内,即不对称边界:[0 , n)。2.因此我们可以将迭代时的条件记为i &lt; n;而不是i &lt;= n - 1;。三.浮点型在内存中的存储方...

2020-09-14 10:19:35 3181

原创 C语言中变量的存储类型

C语言中变量的存储类型:变量的存储类型:是指存储变量值的内存类型。 变量的存储类型决定了 变量何时创建、何时销毁、保持多久。 有三个地方可以存储变量:普通内存、运行时堆栈、硬件寄存器。变量的缺省(default,同默认)存储类型时,取决于它声明的位置。在任何代码块之外声明的变量总是存储的静态内存中,被称为静态变量,在程序运行之前创建。 在代码块内部声明的变量的缺省存储类型是自动的,...

2020-09-14 10:18:56 683

原创 图的广度优先遍历与深度优先遍历

一. 广度优先遍历(Depth-First Search)在进行遍历时,从图的深度入手,使用栈从起始顶点遍历到与之相连的某条通路的末尾,没有路时再选择回退,即顶点元素出栈。具体过程可以进行如下描述:创建一个访问标记数组visited,并初始化为false,表示此顶点没有被访问创建栈,将某个元素入栈(这里我们选取的是顶点数组中下标为0的元素),并将其输出while (!s.empty(...

2020-09-14 10:17:33 369

原创 PE结构中的VA、RVA、FOA

VA:虚拟内存地址 就是在4G虚拟内存空间中(0x00000000 ~ 0xFFFFFFFF)定位的地址。RVA:相对虚拟内存地址 从所在模块(dll)基地址开始的地址,即:模块基地址 + RVA = VAFOA:文件偏移地址 它是指某个位置距离文件头的偏移。与内存无关。...

2020-09-14 10:16:18 987

原创 windows家庭版打开组策略编辑器的方法

1、新建txt,添加如下代码。@echo offpushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txtdir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >&

2020-09-12 17:43:44 948

原创 gcc添加环境变量

1、使用QT中的GCC来添加环境。2、在path新建环境变量添加:Qt\Tools\mingw530_32\bin后点击确认键。3、关闭命令行后重新打开即可。

2020-09-08 14:03:37 2541

原创 Kali Linux忘记密码怎么办?

1、启动你的Kali Linux,等出现GRUB引导菜单时,按向下方向键选择“恢复模式”,按E键进入编辑模式。2、进入编辑模式后,参照下图进行修改(将ro改为rw,在后面添加init=/bin/bash):3、修改完成后,按F10键或Ctrl+X键继续启动。4、启动完成后,出现如下图的命令行,这时输入passwd root,回车就可以直接设置新密码(修改其他用户,把root改为其他用户名即可)5、回车以后,输入新密码,并再次输入确认,系统提示密码更新成...

2020-07-24 22:22:30 19342 1

原创 Window10下使用administrator的方法

1、Win键搜索cmd,管理员身份打开;或者win + s可以搜索2、输入命令“net user administrator /active:yes”后回车3、win键点击头像切换用户即可注意:一般在软件安装或使用时需要权限,通过右键以管理员身份打开即可,不必使用administrator用户。...

2020-07-19 23:31:28 14562

原创 窗口操作函数

查找窗口找window窗口句柄可以使用spy++或者大漠这样的工具,但是在程序重启时句柄会有变化,所以需要使用函数。#include "stdafx.h"#include <stdio.h>#include <Windows.h>#include <TlHelp32.h>1、FindWindow + SetWindowText //参数:类名 标题 HWND hwnd = ::FindWindow(TEXT("#32770"), TEXT("飞

2020-07-10 02:18:12 26321

原创 调用约定

调用约定函数的调用约定就是:描述参数是怎么传递和由谁平衡堆栈的。__stdcall __cdecl __fastcall调用约定 参数压栈顺序 平衡堆栈 __cdecl 从右至左入栈 调用者清理栈 __stdcall 从右至左入栈 自身清理堆栈 __fastcall ECX/EDX传送前两个,剩下:从右至左入栈 自身清理堆栈 ...

2020-07-09 22:54:08 26230

原创 项目——PE解析器(MFC)

这个程序写了差不多两天吧,第一次用MFC写界面,还是比较陌生的,所以这里来整理以下。一. 文件对话框CFileDialog dlgFile(TRUE, \ NULL, \ NULL, \ OFN_HIDEREADONLY, \ _T("Data Files (*exe;*.sys;*.dll)|*exe; *.sys; *.dll|All Files (*.*)|*.*||"), \ /*_T("Describe Files (*.exe)|*.exe|Worksheet F

2020-07-06 02:27:32 26065

原创 MFC中关闭窗口的几种方式

一. 关闭主窗口1、ExitProcess(0);2、AfxGetMainWnd()->SendMessage(WM_CLOSE);3、PostQuitMessage(0);//最常用二. 关闭对话框1、DestroyWindow();在使用时有可能出现断错误:程序崩溃是由DestroyWindow函数使用不当造成的。MSDN中DestroyWindow函数中有这样一句话:A thread cannot useDestroyWindowto destroy a w..

2020-07-04 14:49:13 29464

原创 MFC销售系统项目——静态拆分窗口与自定义消息

一. 静态拆分窗口1、自定义两个类:CSelectView和CDispalyView(它的基类必须是视图类);CSelectView继承于CTreeView,CDispalyView继承于CFormView。2、CMainFrame类中,声明CSplitterWnd类型的对象:private: CSplitterWnd m_spliter; // 切分窗口类对象3、重写框架类CMainFrame的OnCreateClient函数:return TRUE; 自己初始化客户..

2020-07-04 01:31:48 25933

原创 关于_CRT_SECURE_NO_WARNINGS

写MFC时无论在预处理器处添加_CRT_SECURE_NO_WARNINGS还是在文件中定义_CRT_SECURE_NO_WARNINGS都还是报错,之后查到添加到stdafx.h文件中就好了,在这里记录一下。

2020-06-28 19:44:44 26179

原创 Windows进程

一. 进程的创建BOOL CreateProcess( LPCTSTR lpApplicationName, // name of executable module LPTSTR lpCommandLine, // command line string 命令行参数 LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD LPSECUR

2020-06-23 21:46:48 25948

原创 Window线程安全与线程控制函数

一. 线程安全问题多线程同时访问全局变量:一个线程取值后失去CPU另一个线程取值后也失去CPU,此时它们保存的就是相同的值。也是是说,比如两个线程再次对全区变量做++操作时变量只会被修改为同样的值。二. 临界区(线程锁)临界区:Critical Section (Critical:临界的、关键的)1、创建CRITICAL_SECTION: CRITICAL_SECTION cs; 2、在使用前进行初始化 ...

2020-06-21 03:17:52 26995

原创 Window线程与线程操作函数

创建线程HANDLE hThread1 = ::CreateThread(NULL, 0, ThreadProc1, &a, 0, NULL);HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全属性 通常为NULL SIZE_T dwStackSize, // 参数用于设定线程可以将多少地址空间用于它自己的堆栈

2020-06-21 02:58:58 26840

原创 Win32窗口相关API反汇编

1、Win32应用程序入口识别/*程序入口*///APIENTRY(API入口) __stdcallint APIENTRY WinMain(HINSTANCE hInstance, //ImageBase HINSTANCE hPrevInstance, //NULL LPSTR lpCmdLine, //命令行参数,可以用Debug版打印,也可以使用Release版使用Dbgview.exe查看 int nCmdShow) //指定程序窗口如何显示 看到KERNEL32.GetVer

2020-06-20 18:28:42 26948

原创 ODbg使用技巧

0x00:Shift + F2可以下条件断点,汉化版od条件断点会被更改,遇到这种情况就要用英文版了。 [esp + 4] !=[esp + 4]或0x xxxxxxxx(这里输入里面的数值或其他值):表示在[esp + 4]里面的数值不为这个值的时候再断。0x01:双击反汇编右侧的位置可以添加注释。0x02:断点停在在函数头部时可以点击follow in disassembly跳到函数调用位置。0x03:Ctrl + g可以直接全局搜索。0x04:F2断点,F7步入,F...

2020-06-20 13:57:42 27692

原创 Windows消息处理机制

一. 消息与事件Windows中的事件是一个“动作”,这个动作可能是用户操作应用程序产生的,也可能是Windows自己产生的。Windows为了能够准确的描述这些信息,提供了一个结构体:MSG,该结构体里面记录的事件的详细信息。二. 消息流程1. 系统 或 用户触发某个动作 //事件2. 系统将这些信息存储到MSG结构体中 //消息3. 系统将该消息存储到相关应用程序的消息队列中MSG Msg;4. while(GetMessage(&Msg,NUL...

2020-06-19 01:13:35 27343

原创 MFC常用控件

ComboBox:下拉框 m_combobox.AddString(TEXT("唐僧")); m_combobox.AddString(TEXT("孙悟空")); m_combobox.AddString(TEXT("八戒")); m_combobox.AddString(TEXT("沙僧")); m_combobox.SetCurSel(0); m_combobox.InsertString(2, TEXT("白龙马")); m_combobox.DeleteString(3); C.

2020-06-18 22:09:22 27988

原创 C语言宽字符

一. 多字节字符1. 基于ASCII的GB2312标准ASCII表 0 ~ 127拓展ASCII表 0 ~ 255GB2312 10000000 ~ 11111111(高位) + 10000000 ~ 11111111(低位) 问题:不同国家的字符集会产生乱码2. 基于UNICODE的UTF-8UNICODE(同一码 / 万国码):unicode是2个字节。 这一标准的2字节形式通常称作UCS-2(UnicodeCharacterSet)(原ASCII也位双字节)。然而,受..

2020-06-17 14:39:59 30323

原创 C++逆向基础与正向比较——Virtual关键字、虚函数表以及动态绑定的实现

添加Virtual后会多出四个字节,位于结构体的首地址。这个指针是虚函数表指针(vptr / 虚表指针),指向了虚函数表的开始位置;对虚函数表头继续寻址,就可以得到虚函数指针了。可以看出,结构体首地址的指针为三级指针。在vptr指向的位置维护了一个数组,即虚函数表,里面保存了当前类内所有虚函数的地址。这里找来一张图可以参考一下:使用指针来调用一下函数:#define _CRT_SECURE_NO_WARNINGS#include <iostream>using name

2020-06-16 16:22:42 29666

原创 PE结构解析

一. DOS头原来为DOS系统使用,现在只需要记住如下两项。1、DOC头: WORD e_magic * "MZ标记" 用于判断是否为可执行文件. DWORD e_lfanew; * PE头相对于文件的偏移,用于定位PE文件 如上图所示,DOS头一共40H个字节,即64个字节。结尾处4个字节指向了标准PE头的位置:D8。在这中间的文字是编译器加入的一些描述信息。这些字.

2020-06-16 00:35:53 28907

原创 C++访问父类私有成员

其实也很简单,因为首地址相同,通过指针访问就可以了。#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;class A { int a = 10;};class B:A { int b;public: B() { *(int *)this = 20; cout << *(int *)this << endl; }};int main(int .

2020-06-16 00:00:45 27906

原创 给软件添加代码

一. 代码节空白区域添加代码1. 根据SizeOfRawData - VirtualAddress的值来判断剩余空间是否足以添加代码2. 根据SizeOfRawData + PointerToRawData来到空余部分3. 将汇编指令转为硬编码:此处添加的代码是MessageBox,可以通过OD(走下角命令 bp MessageBoxA)来查看MessageBox的地址。6a 00 6a 00 6a 00 6a 00 e8 00 00 00 00 e9 00 00 00 00push 6

2020-06-11 16:35:45 27992

原创 C基础反汇编

switchswitch性能高于if语句的原因在于在case值较为连续的时候会生成值连续的大表,用switch的参数减去第一个最小的case值,和最大值进行比较,小于等于的话在表的范围内寻址即可[ecx*4+0F44D04h]。牺牲内存空间,提升效率,以空间换时间。有时间隔较大的还需要生成小表来记录大表的偏移量,省去大表的许多数据。小表记录偏移量的最大值为FF。int main(int argc, char *argv[]){ switch (1) { case 1: printf(.

2020-06-07 20:08:02 28043

原创 C语言参数传递——数据与内存宽度

如下图所示,将参数定义为char类型并不会节省空间,依然会按照4字节压栈传参。最后一行的堆栈平衡也很明显的。

2020-06-05 23:57:52 29617

原创 字符串截取

有一个字符串是这样的:china中国verygood天朝nice,里面既含有中文又含义英文,请编写一个函数,能截取任意长度的字符串n(n<=总长度)例:fn(5) = chinafn(6) = china中fn(8) = china中国v#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <m

2020-06-05 15:32:29 27418

linux-cmd.zh.pdf

linux-命令中文版.pdf;

2020-07-26

redis命令参考官方文档中文版.zip

redis命令参考官方文档中文版pdf;r

2020-07-26

ReverseTraining_1.exe

ReverseTraining_1.exe Win32窗口函数反汇编Demo

2020-06-20

TabSheet.zip

MCF Tab Control控件重写 TabSheep

2020-06-18

PETool.zip - PE查看器

PETool.zip - PE查看器

2020-06-13

PE结构 - PDF版本.zip

PE结构 - PDF版本.zip

2020-06-13

HelloWorld.exe

堆栈图所需的文件

2020-06-04

StackDemo.exe

堆栈图所需的文件

2020-06-04

FlashThief(优盘小偷).zip

U盘小偷是一款绿色免费U盘资料自动复制移动工具。软件功能强大,可以自动隐藏,自动监视,自动下载。如果你想知道别人的隐私资料或者照片就可以在电脑上装个U...

2019-10-10

navicat连接MySQL

强大的数据库管理和设计工具,支持 Win、macOS 和 linux。直观的 GUI 让用户简单地管理 MySQL、MariaDB、Mon...

2019-01-25

lua-5.3.5源码

http://www.linuxfromscratch.org/patches/blfs/8.3/lua-5.3.5-shared_library-1.patch Optional Test Suite Download (HTTP): http...

2019-01-24

linux内核源码

像Linux内核这样庞大而复杂的程序看起来确实让人望而生畏,它象一个很大的球,没有起点和终点。在读源代码的过程中,你会遇到这样的情况,当读到内核的某...

2019-01-22

PotPlayer播放器

PotPlayer播放器。 Supports Various Subtitle Formats 支持文字字幕SMI,SRTVobsub(DVD),蓝光SUP字幕等多种字幕资源。支持ASS/SSA 动画以及SMI ...

2019-01-13

vim下经典molokai配色方案

vim下经典molokai配色方案。 排在第一位的是:molokai 啊,最经典的配色 既然molokai这么经典,当然要用了。 如何给vim中添加molokai主题...

2019-01-13

汉化版Fiddler

Fiddler是一个http协议调试代{过}{滤}理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cook... Fiddler是一个http协议调试代{过}{滤}理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cook... Fiddler是一个http协议调试代{过}{滤}理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cook...

2019-01-13

VC_Linux-Linux连接插件

目前已经发布的VS2015中包括VS2015 Preview 以及 VS2015 CTP6,这两个版本均不支持直接编译C++代码为Linux程序,具体情况可以参考 Visual Studio 2015 ...

2019-01-13

googleH5速度控制器

googleH5速度控制器。 首先要明确,按需加载虽然能提升首屏加载的速度,但是...在H5应用中,图片的像素要严格控制,一般来说不建议宽度...2. Re:cocos2dx-游戏apk上传Google Pla...

2019-01-13

Dev-Cpp 5.11

Working with computers is much easier than doing work offline but computers are not perfect and require lots of programming. Dev-C++ is one of the most useful tools available for people who are tech savvy and enjoy programming their own software. However, this is also a great tool for people who wish to learn more about computer programming.

2007-02-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除