自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实现游戏角色的穿墙

游戏环境:热血江湖WIN 7专业版 x64效果图原理:游戏内,角色之所以不能穿过建筑物模型,是因为在游戏代码内,存在对障碍物的检测,如角色行进到某一处,向前的坐标可能是标识为障碍物,当角色被触发前进的操作,会先执行对前方障碍物的判断的函数,当前方是障碍物时,角色不执行前行的操作,而对玩家而言,就是操作角色在障碍物前卡住不前。所以对穿墙的实现,可以将游戏内对障碍物的判断nop 掉或者让它总是返回无障碍状态。思路:1、角色可以移动时,会对目的地坐标进行改写和访问2、角色可以移动时,会对当前坐标进

2020-06-11 00:00:37 3935 1

原创 解决多线程访问数据共享问题

问题原因:由于多线程访问造成数据不统一导致的。测试案例代码: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 823

原创 记录一次日常学习笔记

内联汇编内联汇编是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 822

原创 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 8358 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 5460

原创 MFC_DLL 实现动态HOOK

Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。自己理解的原理解释:HOOK通过在HOOK点进行修改,是原先的代码执行到HOOK点后,跳转到自己的代码上执行,得到数据或者进行自己的操作后,返回到原先的代码继续执行(自己理解,若有不足或错误,欢迎指正)使用MFC的动态链接库,实现动态HOOK测试程序(自己

2020-05-20 23:49:37 569

原创 DLL的远程注入与远程卸载卸载

DLL的远程注入与远程卸载卸载涉及Windows APIFindWindowGetWindowThreadProcessIdOpenProcessVirtualAllocWriteProcessMemoryCreateRemoteThreadWaitForSingleObject有时候修改目标程序,如制作插件,补丁,外挂等,需要使用到DLL注入的操作,注入的方式主要有远程注入、劫持注入、HOOK方式、内存注入等,这里主要说一下远程注入以及远程卸载远程注入什么是远程注入:远程注入

2020-05-19 00:03:42 1992 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 334

原创 C++ Primer Plus 笔记3——处理数据

C++ Primer Plus 笔记3——处理数据变量、变量名、常量概念变量:暂时存放数据的一块地址(租房)变量名:存放临时数据的地址的别名(出租屋的地址、门牌号等)常量:一块存放常数的地址(买的房)对于这三者我是这样理解的,变量就像在刚刚工作的时候,我们在住的出租屋,这里不仅我们住,当我们不住了,其他人也可以住。而变量名可以理解成这个出租屋的地址,我们只有知道这个地址才能去住(...

2019-12-07 12:27:11 285 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 224

原创 C++ Primer Plus 笔记1——预备知识

C++ Primer Plus 笔记1——预备知识C++ 简史C++ 特性面向对象编程可移植性和标准VS工具介绍和安装

2019-12-06 12:03:32 214

转载 [原创逆向图文] 新器尝鲜-使用x64Dbg爆破软件注册功能(有瑕疵)

今天入手一款新软件(X64 Dbg )链接:https://pan.baidu.com/s/13E6UFaNjFPdvC–CIpjA5Q提取码:p38r复制这段内容后打开百度网盘手机App,操作更方便哦便使用x64 Dbg + IDA 爆破了一款抓包软件的key 验证(仅仅是爆破,没有研究里面的key 值的加密算法)爆破对象:HTTPDebuggerUI.exe使用工具:IDA7.0 ...

2019-11-18 22:54:40 3637

原创 JDBC万能适配代码

package com.dao;import java.sql.Statement;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Map;import javax.sound.midi.Soundbank;import com.pojo.Us...

2019-11-07 20:00:45 315

原创 利用汇编逃避静态回调函数的检测

#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 236

原创 常用的脱壳方式

一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种UPX ASPCAK TELOCK PELITE NSPACK …ARMADILLO ASPROTECT ACPROTECT EPE SVKP …顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD...

2019-08-26 22:26:56 1227

原创 逆向工程核心原理4-分析crackme

打开程序crackme这个程序是使用VB编写,目标是知晓其中密码计算的算法当密码输入错误时会弹出一下对话框附加到OD在这里介绍一下Visual Basic 文件的特征VB 专用引擎VB 文件使用名为MSVBVM60.dll 的VB专用引擎,VB代码中使用MsgBox()函数来显示消息框,而实际上,VB编译器真正调用的时MSVBVM60.dll 内的rtcMsgBox...

2019-08-12 23:22:13 467

原创 逆向工程核心原理3--栈帧

栈帧栈帧在程序中用于声明局部变量、调用函数,所利用的是EBP(栈帧指针)寄存器来访问栈内局部变量,参数,函数返回地址栈帧结构PUSH EBP ;函数开始(使用EBP前先把已有的值压入栈)MOV EBP, ESP ...

2019-08-05 16:19:05 249

原创 逆向工程核心原理2--破解abex'crackme#1

有需要工具或书籍的联系QQ:3198280360程序运行原本状态初次运行,暂时还不清楚程序需要怎么破解,但是推断应该是对消息内容进行修改,接下来使用OD附加程序使用OD附加选择程序,右键点击 使用OllyICE 打开(或者打开OD 在里面选择打开文件)这里解释一下上面的汇编代码abex’crackme#1程序是使用汇编编写的,所以EP代码非常短// MessageBox...

2019-08-03 20:12:58 734

原创 逆向工程核心原理1--HelloWorld

最终,我做了这个决定,开始学习游戏安全逆向工程核心原理1-HelloWorld 逆向分析HelloWorld 程序#include <iostream>#include <Windows.h>int main(){ MessageBox(NULL, L"HelloWorld1", L"HelloWorld2", MB_OK);}注:此处需要在Rel...

2019-07-29 22:57:45 2308

原创 SSM整合 ——测试代码

参考文章https://www.cnblogs.com/qgy960328/p/8118344.htmlSSM (SpringMVC + Spring + Mybatis)整合文件结构各层之间调用关系数据库建立数据库建立/* Navicat Premium Data Transfer Source Server : db_mysql Source ...

2019-06-20 00:16:46 759

原创 SpringMVC2——常用注解

SpringMVC2——常用注解转发与重定向在SpringMVC 默认使用转发转发与重定向的区别:重定向是再次发送请求(发送两次请求)实现转发代码(SpringMVC 默认)// 转发 @RequestMapping("/forward") public String forward(Model model){ // 在使用转发时,model 默认在r...

2019-06-16 23:41:19 229

原创 微信小程序开发使用自定义字体文件以及引用fontawesome字体

1.到fontawesome官网下载字体包。2.打开1中下载的压缩包找到.ttf文件。3.上传2中的字体文件到https://transfonter.org/,选择base64 编吗 ,convert后下载.4.打开3中下载的文件,找到stylesheet.cs...

2019-06-01 16:29:25 681 1

原创 SpringMVC1

SpringMVC创建web 项目编写web.xml, 注册servlet编写springMVC 配置文件注册视图解析器编写控制器编写界面项目结构SpringMVC 流程图SpringMVC 入门程序web.xml<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Applicat...

2019-05-31 20:05:45 214

转载 SpringMVC入门项目JSP EL表达式无法正常显示的原因及解决方法

问题描述在Spring MVC开发中, 开发人员可能会设置某个值到 model 中, 并通过EL表达式在JSP显示, 例如: ${msg}, 但并没有解析为对应的 “...

2019-05-30 23:25:55 666

原创 Spring AOP使用AspectJ 时报'无法解析对bean“myPointcut”的引用'异常

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:E:\Program Files\JetBrains\IntelliJ IDEA 2019.1.2\lib\idea_rt.jar=62844:E:\Program Files\JetBra...

2019-05-29 22:10:51 1332

原创 Spring1

Spring 学习(1)分层架构web 层 ---- Spring MVC | strutsservice 层 ---- Springdao 层 ---- Mybatis | JDBCTemplate | hibernate —> Spring-dateSpring 核心Spring 核心是控制反转(Ioc) 和面向切片(Aop)IocAopSpri...

2019-05-25 15:36:19 258

原创 Mybatis(4) 查询缓存以及Mybatis 逆向工程

MyBatis(4) ---- 查询缓存用于减轻数据库压力,提高数据库性能如果缓存中又数据,就不用去数据库取数据一级缓存(是SqlSession级别的缓存, Mybatis 默认支持一级缓存)一级缓存的原理 ---- sqlSession 级第一次取查询,先去缓存是否存在这个数据,没有就去操作数据库,并将查询结果存放到一级缓存如果sqlSession 去执行co...

2019-05-20 22:09:56 219

原创 MyBatis3 ---- 高级映射

MyBatis(3) ---- 高级映射mybatis 执行过程配置MybatisCfg.xml 文件编写mapper.xml, 编写sql在MybatisCfg.xml 内注册mapper.xml创建SqlSessionFactory创建SqlSession使用SqlSession操作数据库(如要提交事务,需要使用commit())释放资源Mybatis 开发Dao原始...

2019-05-19 12:20:20 433

原创 MyBatis2

MyBatis2(MyBatis 开发DAO的方法)SqlSession使用范围SqlSessionFactoryBuilder(当作工具类来使用)通过 SqlSessionFactoryBuilder().builder(InputStream is) 创建 SqlSessionFactory,在创建SqlSessionFactory的时候,只需要new 一次SqlSessionFac...

2019-05-17 00:58:30 216

转载 mybatis参数格式化异常

**由于mybatis参数格式化异常**导致,例如在动态sql拼接中String类型参数和数字比较。 <if test="param.xxx!= '2'">1其中xxx为String类型,加单引号mybatis会认为String和char比较,也会导致报错解决方法用toString()转成字符串, '2'.toString()改为双引号"2",外层使用单引号。 &lt...

2019-05-17 00:07:09 555

原创 Mybatis 使用Class加载Mapper映射时的报错以及解决方式

在学习Mybatis时,使用Class 方式记载Mapper 时报错,内容如下:最先,我还以为时我的方法名或者参数类型和Dao.xml 内的有出入,结果,一毛一样,懵逼了按照CSDN上的解决方式依次排查,最后还是报错…直到:在继续浏览博客时,想到了这个会不会和web项目路径问题类似,于是取查了一下,还真的找到了解决方式原因:Dao.xml文件在java目录下,而maven 在编...

2019-05-15 20:34:50 1832

原创 MyBatis(一)

Mybatis(1)使用原生JDBC的问题数据库连接使用时创建,不使用时关闭,对数据库进行频繁的开启和关闭,造成了数据库资源的浪费,影响数据库性能使用数据库连接池进行管理数据库连接将SQL语句硬编码到java代码内,如果SQL语句修改,需要重新编译,不利于系统维护将SQL语句配置到XML文件内向preparedStatemment中设置参数,对于占位符和参数硬编码在j...

2019-05-11 18:10:10 223

原创 MVC 分层思想

开发模式C/S:客户端 / 服务器 (胖客户端)B/S:浏览器 / 服务器 (瘦客户端)javaBean:实体类(无参构造器、私有属性、get/set方法)MVC 开发模式介绍M:Model 模型 ---- JavaBean | 四种作用域V:View 视图C:Controller 控制器 ---- Servlet分层思想小白所写,如有问题,欢迎指导...

2019-05-10 17:49:08 320

原创 JSP介绍

JSP 学习JSP 概述jsp(Java Server Page) = java + htmlJSP 实际就是 ServletHTML:静态内容Servlet:服务端的小应用程序。适合编写java逻辑代码JSP:适合编写输出动态内容,但不适合写Java逻辑测试代码<%@ page import="java.util.Date" %><%@ ...

2019-05-10 00:27:00 272

原创 Filter

Listener 和 FilterListener 监听器用于监听web常见对象 HttpServletRequest HttpSession ServletContext(都是域对象),监听它们的创建、销毁、属性变化、Session 绑定 JavaBeenListener 常见的监听器监听域对象的插件和销毁监听ServletContext 创建于销毁 ServletCon...

2019-05-08 21:15:21 215

原创 JAVA常用类总结(一)

JAVA常用类总结(一)String classString 类代表字符串对象常用方法charAt(int index) — 返回指定索引的char值public static void main(String[] args) { String str = "HelloWorld"; System.out.println(str.charAt(2));}c...

2019-05-08 12:23:34 568

原创 Servlet、Session、Cookie

ServletServlet 官方API文档Servlet调用过程具体调用过程Servlrt两个继承类GenericServletHttpServletServlet 细节同一个Servlet可以被映射到多个URL上在Servlet映射到URL中也可以使用通配,但是只能由两种固定格式:.扩展名;/*Servlet 对象创建在浏览器第一次...

2019-05-02 22:25:48 481

原创 Server相关总结(http、Tomcat等)

Tomcat Server自己搭建一个Server服务器package com.test;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;pub...

2019-04-30 21:14:39 404

原创 XML 和 Dom4J

XML 和 Dom4JXML语法<开始符>值</结束符><?xml version="1.0" encoding="utf-8" ?><xml-body> <students> <oytz> <age>25</age> ...

2019-04-29 01:04:03 204

原创 reflex反射

反射(主要用于做框架使用)含义:加载类并解剖(反射)类的各个部分三种实现类的加载,返回字节码对象//加载类_1Class class_0 = Class.forName("com.reflextest.ReflexTest");//加载类_2Class class_1 = new ReflexTest().getClass();//加载类_3Class class_2 = R...

2019-04-28 16:37:36 622

空空如也

空空如也

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

TA关注的人

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