自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 MFC界面库ToolkitPro v15.3.1的编译和使用教程(支持VS2015和VS2017)

界面库全称为Codejock Xtreme Toolkit Pro,目前可以免费使用的版本为v15.3.1,可以在优快云上搜索下载,有很多,比如。

2025-01-12 01:59:40 1204

原创 qt中编译使用freeglut库

网络上大多数关于freeglut的编译教程是基于MSVC编译器的,本文是在MingW64位编译器下进行的。

2024-11-12 00:38:29 197

原创 [QT多线程基础系列]QT多线程之线程池QThreadPool方法详解

在Qt中使用线程池需要先创建任务,添加到线程池中的每一个任务都需要是一个QRunnable类型,因此在程序中需要创建子类继承QRunnable这个类,然后重写 run() 方法,在这个函数中编写要在线程池中执行的任务,并将这个子类对象传递给线程池,这样任务就可以被线程池中的某个工作的线程处理掉了。QRunnable类 常用函数不多,主要是设置任务对象传给线程池后,是否需要自动析构。

2024-11-11 02:25:56 106

原创 [QT多线程基础系列]QT多线程之moveToThread方法详解

假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。本博客同样以数字排序进行举例说明!

2024-11-09 15:09:40 519

原创 [QT多线程系列]QT多线程之线程类QThread的使用详解

假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。本博客以数字排序进行举例说明!

2024-11-08 00:32:36 67

原创 Visual Studio高版本到低版本的转换

由于VS版本比较多,低版本无法直接打开高版本的工程文件,通过对工程文件进行一些修改可以解决这些问题。通过修改Solution文件和Project文件,可以使低版本转换为高版本。

2024-11-06 23:30:02 921

原创 [QT基础系列]QT信号槽的使用详解(含Lambda表达式)

案例:“指挥官” (Commander)发送一个 “冲” (go) 的信号,然后 “士兵" (Soldier)执行“ 战斗” (fight) 的槽函数信号和槽都已经定义完毕, 接下来就可以进行连接了// 1. 创建两个类的实例// 2. 建立信号和槽的连接// 3. 发送信号// emit 可省略如果要使用信号和槽,需要满足如下两个条件自定义的类,要继承自 QObject自定义的类,其中要声明一个宏 Q_OBJECT只有满足了这两个条件才可以正常使用信号槽机制。

2024-11-03 21:31:33 271

原创 [QT基础系列]表格QTableWidget

是Qt中的表格控件,可以行列的形式来展示数据有很多属性和方法,完整的可查看帮助文档。在窗口上放置一个控件后,既可以在设计师UI界面来编辑属性和添加数据,也可以在代码中动态地设置,常用的属性和方法如下。

2024-11-02 03:44:14 194

原创 MySQL安装与局域网连接配置

【代码】MySQL安装与局域网连接配置。

2024-11-02 03:43:29 312

原创 [QT基础系列]QT程序的发布部署

打开QT控制台,根据自己的编译器选择相应的控制台,如MinGW 64-bit。切换目录到debug(包含exe程序)下,执行命令即可完成部署。

2024-10-31 00:59:40 75

原创 [QT基础系列]列表框QListWidget

Qt中的列表框控件,对应的类是它用于显示多个列表项,列表项对应的类是。

2024-10-31 00:58:28 160

原创 [QT基础系列]进度条QProgressBar

是进度条控件,进度条用来指示任务的完成情况。

2024-10-27 23:09:46 235

原创 [QT基础系列]滑动条QSlider

QSlider是滑动条控件,滑动条可以在一个范围内拖动,并将其位置转换为整数QSlider继承自,它的绝大多数属性都是从继承而来的。

2024-10-27 23:09:35 182

原创 [QT基础系列]复选按钮QCheckBox

Qt中的复选按钮类是QCheckBox它和[单选按钮]很相似,单选按钮常用在 “多选一” 的场景,而复选按钮常用在 "多选多"的场景比如喜欢的水果选项中,可以在 “苹果/桃/梨/橘子/香蕉” 中选择多个。

2024-10-26 23:57:21 284

原创 [QT基础系列]单选按钮QRadioButton

Qt中的单选按钮类是它是一个可以切换选中(checked)或未选中(unchecked)状态的单选按钮单选按钮常用在 “多选一” 的场景,也就是说,在一组单选按钮中,一次只能选中一个单选按钮比如性别中的 “男女” 二选一,学历中的 “博士/硕士/本科/其他” 四选一,等等。

2024-10-26 23:57:03 276

原创 [QT基础系列]文本框QLineEdit

QLineEdit 是 Qt 中的文本框,准确地说是单行文本框,通常用于接受用户的输入比如用户输入用户名、密码等,都可以使用该控件。

2024-10-24 23:57:18 51

原创 [QT基础系列]标签QLabel

QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像。

2024-10-24 23:55:48 178

原创 [QT基础系列]按钮QPushButton

QPushButton属性和方法、案例。

2024-10-23 07:12:24 265

原创 [QT基础系列]窗口QWidget

所有窗口类的基类Qt 中有 3 个窗口的基类:QWidget、QMainWindow、QDialog在创建 Qt 工程时,会让我们选择继承自哪一个窗口类其中,QMainWindow、QDialog 都是继承自 QWidge所有控件类的基类Qt 中的控件类(按钮、输入框、单选框等)也属于窗口类它们的基类也是 QWidget;可以内嵌到其他窗口的内部,此时需要给其指定父窗口;可以作为独立的窗口显示,此时不能给其指定父窗口;

2024-10-23 07:10:30 261

原创 【超级鼠标键盘锁】之远线程注入winlogon.exe进程屏蔽Ctrl+Alt+Del、Win+L

通过上一节对进程的调试,得到了其处理和Win+L按键的关键代码位置偏移,并阐述了如何对指令进行修改,从而达到屏蔽这两个按键。本节采用远线程注入技术进行实现。

2024-10-06 19:05:38 183

原创 【超级鼠标键盘锁】之实现思路(非驱动实现)

曾经,学习孙鑫老师的《VC++深入详解》时,接触到了钩子HOOK原理,一度对HOOK技术特别感兴趣,便自然而然产生了实现“鼠标键盘锁”的想法。

2024-10-01 11:59:01 56

原创 一种使用setdll+HOOK钩子技术+dll为MFC程序ProtocalTool等老旧程序打补丁的思路(含源码)

由于工作原因,需要使用一个很老旧的软件,没有源代码,该软件在XP系统下运行正常,但是需要登录,且在win10系统下使用时IP控件运行不正常,只能输入每个数字只能输入2位数,还有一些其他问题,比如给软件添加一些编辑框,或者对软件进行下面简单梳理一下解决这些问题的思路。

2024-10-01 11:56:04 184

原创 Ollydbg使用教程学习总结(五)

新内容:硬件断点用PEID打开,看到程序是用VC6.0写的,用OD载入,按F9运行后,出现NAG窗口,在OD中按下暂停,再打开堆栈窗口如上图高亮行正是调用NAG窗口的call,双击来到反汇编窗口并下断重新运行程序,发现程序的3个窗口都是对话框,且都来自这个call,因此不能直接将该指令NOP掉。继续往上浏览,发现有je跳转语句,只要让第1次和第3次跳转实现,第2次跳转不实现即可。在数据段00445E80。

2024-09-05 06:47:30 96

原创 Ollydbg使用教程学习总结(四)

用PEID查看,是VC6编写的程序,用OD载入API下断方法:a.右键=>查找=>所有模块间的调用,直接输入API,找到后右键该行=>在每个调用到上设置断点;b.Ctrl+N,找到后右键=>在每个参考上设置断点;按F9运行程序,删除输入注册码之前就触发的断点,最后输入注册信息之后,在如下位置断下。

2024-09-05 06:46:42 122

原创 Ollydbg使用教程学习总结(三)

点击注册,输入邮箱和序列号后提示如下突破口:该提示窗口中的字符串,查找如下双击来到反汇编窗口,有个关键跳转,往上查看影响跳转的语句是test al,al,猜测al=0为未注册,al=1为已注册,再往上查看,决定al值,下断跟进查看。跟进“需进入1”,找到2个关键call跟进“需进入2”和“需进入3”,发现函数里代码相似看来是关键,跟进后来到最后一句为mov al,bl,这是改变al值的关键语句,修改为mov al,1后按F9运行程序,发现保存到可执行文件后,运行程序。

2024-09-03 16:34:02 179

原创 Ollydbg使用教程学习总结(二)

把程序跑一遍之后我们发现程序有两个NAG,一个是在程序界面启动前出现,另一个是在程序关闭后出现的。去掉第一个Nag方法如下:①jmp跳过②全部nop掉③令hOwner参数为1,push 1,使其父句柄无意义④更改入口地址为401024双击这一行将下面一行中的值改为1024,如下图具体在数据窗口中定位到4000E8,按下空格键进行修改同理,可去掉第二个NAG窗口。

2024-09-02 17:11:12 131

原创 Ollydbg使用教程学习总结(一)

使用例子程序为Hello.exeOD基本快捷键及功能从系统DLL领空返回到程序领空,Alt+F9通过OD将程序的标题“Hello world”改为“OD Class 01”直接单步执行法按F8单步执行,找到MessageBox传参的地方,直接在数据窗口修改即可。

2024-09-02 17:10:51 305

原创 Windows系统下基于VS通过setdll调试需要远线程注入的dll

下载源代码用管理员身份启动或直到编译结束,在Detorus-master目录下的bin.X86(x64类似)文件夹下,找到setdll.exe文件。

2024-09-02 17:09:30 220

原创 某MFC软件注册码逆向分析(此处只谈思路)

初始状态描述:软件可以正常打开,打开后点击菜单任意按钮,则弹出机器码包含本机机器码的注册框,机器码共有XX位!输入用户名和邮箱等之后,会生成一个后缀名为.dat的文件,并提示用户需要将该文件通过电子邮件反馈给软件厂商,软件厂商反馈后缀名为.key的注册文件,通过菜单注册按钮,选择该.key文件,即可注册成功。首先利用PEID之类的查看程序的基本信息,以及是否加壳,发现并没有加壳,且是采用VC++写的。

2024-09-02 17:01:07 108

原创 IDA反编译dll库时导入C++头文件

有时候,可能因为硬盘损坏等等原因,自己曾经写的动态链接库源码丢失了,幸好对应的头文件得以保留了下来,这个动态链接库主要是某种算法的实现,并没有继承其他的一些类库,比如MFC之类的,而自己对算法的实现已经忘得差不多了,而突然又需要该算法的实现过程,那么有什么办法可以帮助我们呢?一个很好的办法就是采用IDA进行反编译,如果dll只是C语言的导出,那么反编译代码应该比较好看懂!(不过有一个难题是结构体的识别)

2024-09-02 16:59:05 605

原创 MFC软件算法逆向分析详解及技巧

对于直接使用SDK而不使用第三方库的程序,我们要定位到程序的“关键代码”并不困难。通常在CreateWindow函数或DialogBoxParam函数下断点,可以直接获得其主界面的窗口过程或对话框过程。但是对于使用了MFC的程序,我们找到的窗口过程或对话框过程是在MFC提供的程序框架的内部,经过层层的分发和筛选,消息才最终到达用户代码,直接分析起来比较繁琐。幸好,有一个Olly的脚本,可以直接帮助我们找到诸如OnOK()之类的函数。

2024-09-02 15:14:37 289

原创 基于AES加密的恶意软件逆向分析和解密过程(含文件)

首先,用IDA或Ghidra加载文件test.dat,文件为64位文件IDA点击View==>Open subviews==>Imports,查看导入信息Ghidra可以直接看到可以看到,导入函数有:导入库有一个libc.so.6,通过函数名和这个库文件,可以判断应该是linux系统下的。查看字符串:Ghidra分为字符串和Encoding,需要搜索一下才可以显示出来可以看到几个特殊的字符串:1).2).3).4).5).6)7)通过字符串。

2024-08-31 17:47:38 205

空空如也

空空如也

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

TA关注的人

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