C/C++
秃头的JJ
绵阳程序男,死肥宅一个,也是小白一枚,求大牛带。个人github 博客https://jiajinrong12138.github.io/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
解决多线程访问数据共享问题
问题原因:由于多线程访问造成数据不统一导致的。测试案例代码:code:// 全局资源DWORD dwArray[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };DWORD *pdwArray[10];// 资源调用函数void printArray(const char* szpThradName){ for (int i = 0; i<10; i++) { DbgPrintMine("%s == %d\r\n", szpThradName原创 2020-06-04 09:22:00 · 913 阅读 · 0 评论 -
记录一次日常学习笔记
内联汇编内联汇编是C/C++的一个重要特性,内联汇编顾名思义是可以在C/C++ 语法内嵌套使用汇编指令,使用内联汇编的好处就是可以更灵活便捷,我觉得尤其是在做逆向这一块,简直不要太爽。内联汇编Demo:#include <stdio.h>#include <windows.h>int asmFunc(){ int a = 0; __asm { // 变量a 地址复制给eax mov eax, a // eax 地址做加点运算 add eax, 0原创 2020-06-03 17:25:25 · 985 阅读 · 0 评论 -
QT 实现MQTT 协议通信
MQTT 接收链接最近作业要求,研究了一下MQTT(只能说是简单的实现了一下),顺便使用QT写了一个测试工具下面是对每一个功能的详解1、EMQ QMQTTQMQTT 是QT 提供的MQTT 依赖,需要进行编译后,加载lib文件(有些说的是.a 文件,但我编译完成后就只有lib 文件,尴尴尬尬)。教程转:链接2、界面设计3、代码3.1 初始化创建对象,声明方法private: Ui::MainWindow *ui; QMQTT::Client * client;原创 2020-05-31 16:43:55 · 9491 阅读 · 3 评论 -
游戏逆向
学习案例:热血江湖使用环境:Visual Studio 2019学习使用的工具:逆向工具集注:更新日志:1.0:最新版人物信息基址:0x02C166D8;最新版背包存放基址:0x02E3B3E42.0:最新版物品使用call 为0x008384803.0:人物基址:0x02C176D8;背包存放基址:0x02E3C3E4;游戏主窗口基址:0x01195F88;使用物品的CALL:0x008384F0;人物动作基址:0x02E3CD58;动作使用的CALL:0x007139E0;原创 2020-05-25 22:07:20 · 5932 阅读 · 0 评论 -
MFC_DLL 实现动态HOOK
Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。自己理解的原理解释:HOOK通过在HOOK点进行修改,是原先的代码执行到HOOK点后,跳转到自己的代码上执行,得到数据或者进行自己的操作后,返回到原先的代码继续执行(自己理解,若有不足或错误,欢迎指正)使用MFC的动态链接库,实现动态HOOK测试程序(自己原创 2020-05-20 23:49:37 · 685 阅读 · 0 评论 -
DLL的远程注入与远程卸载卸载
DLL的远程注入与远程卸载卸载涉及Windows APIFindWindowGetWindowThreadProcessIdOpenProcessVirtualAllocWriteProcessMemoryCreateRemoteThreadWaitForSingleObject有时候修改目标程序,如制作插件,补丁,外挂等,需要使用到DLL注入的操作,注入的方式主要有远程注入、劫持注入、HOOK方式、内存注入等,这里主要说一下远程注入以及远程卸载远程注入什么是远程注入:远程注入原创 2020-05-19 00:03:42 · 2477 阅读 · 2 评论 -
C++ Primer Plus 笔记4——复合类型
C++ Primer Plus 笔记4——复合类型数组一种存放多个同类型数据的数据结构形式:Type NAME[size];实例代码#include <iostream>using namespace std;int main(){ // 定义int 数组 int intArray[3]; // 数组赋值 intArray[0] = 1; intArr...原创 2019-12-09 22:33:14 · 440 阅读 · 0 评论 -
C++ Primer Plus 笔记3——处理数据
C++ Primer Plus 笔记3——处理数据变量、变量名、常量概念变量:暂时存放数据的一块地址(租房)变量名:存放临时数据的地址的别名(出租屋的地址、门牌号等)常量:一块存放常数的地址(买的房)对于这三者我是这样理解的,变量就像在刚刚工作的时候,我们在住的出租屋,这里不仅我们住,当我们不住了,其他人也可以住。而变量名可以理解成这个出租屋的地址,我们只有知道这个地址才能去住(...原创 2019-12-07 12:27:11 · 385 阅读 · 1 评论 -
C++ Primer Plus 笔记2——开始学习C++
C++ Primer Plus 笔记2——开始学习C++入门程序HelloWorld// 包含输入输出流头文件#include <iostream>// 声明使用std 命名空间using namespace std;// main 函数int main(){ // 输出字符串HelloWorld cout << "HelloWorld" <...原创 2019-12-06 20:24:38 · 265 阅读 · 0 评论 -
C++ Primer Plus 笔记1——预备知识
C++ Primer Plus 笔记1——预备知识C++ 简史C++ 特性面向对象编程可移植性和标准VS工具介绍和安装原创 2019-12-06 12:03:32 · 274 阅读 · 0 评论 -
利用汇编逃避静态回调函数的检测
#include "CAutoPlay.h"#include "HookGameMainThread.h"#include "StructGame.h"CAutoPlay g_CAutoPlayl;CAutoPlay::CAutoPlay(){ DWORD proc = NULL; // 使用汇编来逃避编译器的静态参数的检测 __asm { MOV EAX, Threa...原创 2019-11-05 10:41:20 · 293 阅读 · 0 评论
分享