自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SEH一异常处理

fun含4个参数,只说下1和3就行,其中第一参数是个异常结构体指针,第3叁数是个context结构体指针。可以通过改写context结构体中的EIP改变程序执行流程。第一叁数里记录了异常原因和导常地址等,第三叁数记录了寄存器数据。由于栈地址由高往低增长,所以fun先x栈,temp后入栈。前2行即构成一个异常结构,第3行定义了我们自己的异常。b:设置了相关api系统异常,正常运行会调用自己定义系统弄常,调试则。异常通过链表连接+和处理异常的函数,处理异常。调用系统的异常函数,其中系统会调用系统异常。

2023-12-20 16:48:48 296 1

原创 PEB一进程环境块

里面存的_PEB_LDR_DATA结构体指针。其中该结构中有_LIST_ENTRY结构(是个双向链表,连接process中所有加载dll)。即:GetModuleHandle传入NULL返回的地址。相关api:IsDebugPresent();进程通过该字段可查到加载到该进程中dll的信息。这个偏移里面存ImageBase(进程)该字段在调试进程时可能会出现特定信息。FS:【30】十2中存放该标志。检测是否调试,0假,1真。

2023-12-20 14:28:04 344 1

原创 TEB一线程环境块

TEB结构复杂,主介绍TID结构体和F标为30的成员,以及通过EFL寄存器访问TEB成员。TEB以一个TID结构体开始,其中存放的是导常表结构地址。即:FS:【0】=point to seh(指针)2.TEB【18】即TID.self。1.TEB【0】即TID.异常。

2023-12-20 13:51:31 359 1

原创 TLS-线程本地储存

在找出的rva内存地址中是包含6个dword的结构体,其中第4个是函数地址的指针(是个VA地址,以imagebase为基准),最后通过这个VA地址读出里面保存的函数址址(如:401000)。和DllMain类似,tls回调函数由系统调用。编写汇编的tls回调函数需return 0xc(3个参数要清栈)。DataDirectory[9]中第1个DWORD下图这结构的RVA ,2.调试器开始调试前须把调试事件设置于tls处。3.PE中查tls回调函数。TLS-线程本地储存。

2023-12-11 10:01:47 36 1

原创 调试器(DebugActiveProcess注意)

干完坏事后再Sleep(0),再次没置int3断点。(sleep会释放当前时间片,让被调试程度执行会,再还回当前函数,继续促发int3断点,从而又促发异常事件)(注意:ebp十8不是第1个叁数,因为push ebp 和move ebp,esp未执行,ebp还在上一函数)首先恢复0xcc为最初值。通过esp可访问堆栈中数据,如esp+8是第丨个叁数。1.调试器附加促发调试进程事件,随便hook个函数,设置0xcc断点。2.oxcc断点促发异常事件,

2023-11-15 09:28:11 102

原创 Dll注入3:代码注入debug版注意点

1.由于所有函数都由jmp跳转,导致通过函数名获取的不是代码首地址。(vs中查看函数名,其中显示符号地址才是首地址)2.关闭C运行库检测。

2023-11-15 09:12:44 37

原创 windows宏消息总结

在switch中写宏处理,实际处理过程放外面,并且switch中的宏处理要写得像c++重载函数。3.由1的宏转换导致各种不同宏,而各种不同转换结果导致不同的fn函数,从而导致2可编写许多。1.把HAND_MSG(message ,fn)转化为各类宏(编写一次)hand_msg(wm_paint.onpaint)转化为。HAND_MSG(WM_SIZE,onsize)转换为。由于hand_wm_size(fn)替代为fn(…1.统一宏函数HAND_MSG(

2023-11-02 17:50:46 27

原创 Dll注入2(CreateRemoteThread)

2.用VirtualAlloc ,WriteProcessMemory ,Virtual protect 写入数据(dll名字)到目标进程。原理:用此函数注入dll需将待注入函数过程和所需叁数注入到目标进程,再调用Createremotethread.注:由于LoadLibrary所有进程不变,故函数过程不需注入目标进程,只需数据注入。但如果待注入过程是自己编写,则过程和数据都要注入目标进程(即代码注入)。3.调用CreateRemoteThread。

2023-11-02 10:55:58 35

原创 Dll注入1(SetWindowsHookEx)

3.假设钩子代码在dll内,调用方调用dll中hook函数注入目标程序,会导致在dll中的回调函数注入到目标程序。由于hook函数和hook用的回调函数在dll中,从而导致dll注入到目标进程。2.既然应用程序要执行钩子,再继续执行,这就要求钩子必须在本程序内或dll内(dll类可共亨代码)。2.dll中编写hookA中SetWindowHookEx需要的回调。1:dll中编写hookA函数和hookB卸载函数。4.调用dll中hookA函数。3.dllmain中写功能。3.获取hookA函数。

2023-11-02 10:41:26 45

原创 window宏笔记

其中1个消息 执行 SetWindowLongPtr((hwnd), DWLP_MSGRESULT, (LPARAM)(LRESULT)(result)), TRUE) 直接设置函数的返回值为TRUE。(LRESULT)(DWORD)(UINT)(BOOL)(Dlg_OnInitDialog)((hwnd), (HWND)(wParam), lParam) //变成一个函数了。//msg==其中1个消息 执行 (BOOL)(result) 其中result是个函数指针。

2023-07-23 16:42:38 73

原创 c++同一个程序打开N个实例,共享同一变量

*//个人猜想:如果是dll中有共享变量,只要是调用了这个dll程序都共享这个变量;实际szTemp[100]这个变量被所有打开的共享,一个改变,其它的都改变。下面的代码放入vs中,程序打开个实例,

2023-07-21 20:25:39 109 1

原创 c++函数指针和typedef函数指针

c++函数指针和typedef函数指针

2023-07-21 19:09:24 51 1

原创 C++个人快速理解指针

C++指针快速理解

2023-07-21 16:15:03 36 1

空空如也

空空如也

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

TA关注的人

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