- 博客(17)
- 收藏
- 关注
原创 线程--小结
一.等待线程创建一条线程,任何直接运行程序,那么就会导致主线程结束了,创建的线程还没完结。threads[i] = (HANDLE)_beginthreadex(NULL, NULL, thread1, NULL, 0, NULL);所以创建了线程之后要是函数来等待线程的结束WaitForMultipleObjects(2, threads, true, INFINITE);等待直到一个或所有指定对象处于信号状态或超时间隔过去DWORD WaitForMultipleObjects( [
2022-05-04 10:22:59 103
原创 线程--互斥事件
多个线程同时执行对某个全局变量进行访问时,可能会引发一些错误,所以就需要引入线程互斥事件线程互斥事件会对线程做一个排序,使得在访问同一个全局变量时不会出错HANDLE CreateEventA( [in, optional] LPSECURITY_ATTRIBUTES lpEventAttributes,//安全属性 [in] BOOL bManualReset,//T为手动重置,F为自动重置 [in] BOOL
2022-04-10 11:02:28 264
原创 驱动学习三
#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 149
原创 驱动学习二
应用层与驱动层交互// 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 57
原创 驱动学习一
#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 133
原创 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 1698 3
原创 反调试学习——IsDebuggerPresent
IsDebuggerPresent***IsDebuggerPresent***的作用是检测自身进程是否处于调试状态,如果进程没有运行在调试器环境中,函数返回0;如果调试附加了进程,函数返回一个非零值。写了个小程序试验绕过:绕过目前我自己有两种思路:1.在判断处做改变2.在 IsDebuggerPresent做改变代码如下:if (IsDebuggerPresent()) { MessageBox(TEXT("有调试器在调试!")); } else { MessageBox(T
2021-05-31 16:08:57 1375
原创 BUUCTF CREAKRTF
BUUCTF CREAKRTF拿到程序,首先查壳,无壳,是32位程序拖入IDA,进main函数分析代码,首先是要我们输入一串字符且长度为6,再往下分析可知,atoi是把字符串变为整数型,所有可知,我们输入的字符是大于100000小于999999的ok,继续往下走,可以看到strcat把我们输入的字符串和@DBApp拼接,然后在下一个函数进行加密得到的字符串就是"6E32D0943418C2C33385BC35A1470250DD8923A9",进入加密函数直接百度搜索CryptAcquireCo
2021-05-20 22:29:33 284
原创 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 542 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 529 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 499
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人