自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Qt学习之注册热键使软件置顶

qt热键的注册

2024-03-05 11:53:28 343

原创 Linux 基础网络编程

Linux基础网络编程例子

2023-10-13 11:46:15 58

原创 socket简易客户端与服务端

简易的socket网络编程

2023-03-01 18:25:33 81

原创 _LDR_DATA_TABLE_ENTRY结构体

_LDR_DATA_TABLE_ENTRY结构体

2022-12-22 15:31:39 843

原创 线程--小结

一.等待线程创建一条线程,任何直接运行程序,那么就会导致主线程结束了,创建的线程还没完结。threads[i] = (HANDLE)_beginthreadex(NULL, NULL, thread1, NULL, 0, NULL);所以创建了线程之后要是函数来等待线程的结束WaitForMultipleObjects(2, threads, true, INFINITE);等待直到一个或所有指定对象处于信号状态或超时间隔过去DWORD WaitForMultipleObjects( [

2022-05-04 10:22:59 73

原创 线程--互斥事件

多个线程同时执行对某个全局变量进行访问时,可能会引发一些错误,所以就需要引入线程互斥事件线程互斥事件会对线程做一个排序,使得在访问同一个全局变量时不会出错HANDLE CreateEventA( [in, optional] LPSECURITY_ATTRIBUTES lpEventAttributes,//安全属性 [in] BOOL bManualReset,//T为手动重置,F为自动重置 [in] BOOL

2022-04-10 11:02:28 246

原创 驱动学习三

#include<ntddk.h>#include<windef.h>#include<intrin.h>PVOID OpenProcessAddr = NULL;PVOID jmpAddr = NULL;KIRQL WPOFFx64(){ KIRQL irql = KeRaiseIrqlToDpcLevel(); DWORD64 cr0 =__readcr0(); cr0 &= 0xfffffffffffeffff

2021-11-03 22:01:38 127

原创 驱动学习二

应用层与驱动层交互// R3.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include<Windows.h>int main(){ DWORD td = 0; CHAR readBuffer[50] = { 0 }; HANDLE hDevice = CreateFile(TEXT("\\\\.\\MyfirstDevice"), GENERIC_READ | GENERIC_WRI

2021-10-26 16:22:32 41

原创 驱动学习一

#include<ntddk.h>#define DRIVER_NAME L"\\Device\\MyfirstDevice"#define SYM_NAME L"\\??\\MyfirstDevice"void DrvUnload(PDRIVER_OBJECT pdriver){ DbgPrint("驱动已经卸载"); if (pdriver->DeviceObject) { IoDeleteDevice(pdriver->DeviceOb

2021-10-26 16:18:12 103

原创 BUUCTF_[ACTF新生赛2020]easyre 1

拿到程序拖入ida中,发现有UPX壳所以脱壳然后再拖入ida进入主函数int __cdecl main(int argc, const char **argv, const char **envp){ char v4; // [esp+12h] [ebp-2Eh] char v5; // [esp+13h] [ebp-2Dh] char v6; // [esp+14h] [ebp-2Ch] char v7; // [esp+15h] [ebp-2Bh] char v8; // [e

2021-06-14 11:20:14 1502 3

原创 反调试学习——IsDebuggerPresent

IsDebuggerPresent***IsDebuggerPresent***的作用是检测自身进程是否处于调试状态,如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。写了个小程序试验绕过:绕过目前我自己有两种思路:1.在判断处做改变2.在 IsDebuggerPresent做改变代码如下:if (IsDebuggerPresent()) { MessageBox(TEXT("有调试器在调试!")); } else { MessageBox(T

2021-05-31 16:08:57 1145

原创 BUUCTF CREAKRTF

BUUCTF CREAKRTF拿到程序,首先查壳,无壳,是32位程序拖入IDA,进main函数分析代码,首先是要我们输入一串字符且长度为6,再往下分析可知,atoi是把字符串变为整数型,所有可知,我们输入的字符是大于100000小于999999的ok,继续往下走,可以看到strcat把我们输入的字符串和@DBApp拼接,然后在下一个函数进行加密得到的字符串就是"6E32D0943418C2C33385BC35A1470250DD8923A9",进入加密函数直接百度搜索CryptAcquireCo

2021-05-20 22:29:33 237

原创 BUUCTF justRE

BUUCTF justRE拿到程序照例查壳,无壳,32位程序拖入ida看了半天没看出什么有用的信息CTRL+f12查找字符串,看到一串类似flag的字符串:BJD{%d%d2069a45792d233ac}双击跟进,看到这串字符串的调用函数跟进函数体跟进sprintf函数没看懂什么意思,转换思路,打开调试程序看到getflag,点击跟进点击可以出flag,好吧,软的不行那就只能硬来了之前反汇编时在sprintf里面的参数中传入了19999,0这两个整数参数,大胆猜测点击19999次

2021-05-11 16:45:41 444 2

原创 BUUCTF pyre

BUUCTF pyre拿到的文件是一个后缀是.pyc的文件,有点迷糊,百度了一下发现可以用网上的python反编译在线工具反编译,反编译之后得到代码:#!/usr/bin/env python# visit http://tool.lu/pyc/ for more informationprint "Welcome to Re World!"print "Your input1 is your flag~"l = len(input1)for i in range(l): num =

2021-05-01 19:46:23 500 1

原创 BUUCTF luck_guy

BUUCTF luck_guy题解拿到程序,先查壳,可以看出没有壳,是64位的程序接着直接ida64位打开,找到mian函数代码很清晰,直接追踪patch_me函数继续追踪get_flag得到如下代码:unsigned __int64 get_flag(){ unsigned int v0; // eax char v1; // al signed int i; // [rsp+4h] [rbp-3Ch] signed int j; // [rsp+8h] [rbp-38h]

2021-04-29 15:58:37 416

空空如也

空空如也

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

TA关注的人

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