摘要: 源的切换 1.git remote set-url origin URL 设置仓库源地址 (不要带.git,直接复制浏览器上的URL就好了) 2.git remote remove origin 去除仓库源地址 4.git remote add origin URL 增加源地址 git remote 阅读全文
posted @ 2021-07-20 10:54 乘舟凉 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 进入内核调试模式(注入符号文件加载正确) 输入命令:dt ntdll!_TEB 若要详细信息 输入命令:dt -r1 ntdll!_TEB 阅读全文
posted @ 2021-05-16 22:51 乘舟凉 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 1. TLS目录全部是VA,回调函数地址数组也是VA typedef struct _IMAGE_TLS_DIRECTORY32 { DWORD StartAddressOfRawData; /* tls节区的起始地址 */ DWORD EndAddressOfRawData; /* tls节区的最 阅读全文
posted @ 2021-05-16 20:27 乘舟凉 阅读(175) 评论(0) 推荐(0) 编辑
摘要: #include <tchar.h> #include <windows.h> #pragma comment(linker,"/INCLUDE:__tls_used") //告诉链接器要使用TLS void print(char * msg){ HANDLE out = GetStdHandle( 阅读全文
posted @ 2021-05-15 23:37 乘舟凉 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 1.win7中开启了ASLR功能的程序每次启动时基址都会发生变化,而win10中是每次重启时基址发生变化,(当把这个程序文件复制一份,复制文件的基址也会和原来不一样) 2.只有文件头的charactersistics不设置无重定位节区,和文件头的DllCharactersistics设置动态基址,两 阅读全文
posted @ 2021-05-08 20:51 乘舟凉 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 栈帧就是利用EBP(栈帧指针,请注意不是ESP)寄存器访问栈内局部变量、参数、函数返回地址等的手段。 下面通过一个案例呈现: 先编写一个很简单的程序,但是这个程序一定要用到局部变量或参数,详细代码见下图 Test.cpp #include <stdio.h> #include <Windows.h> 阅读全文
posted @ 2021-04-28 21:51 乘舟凉 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.x64系统的调用方式统一使用一种变形的fastcall,即前四个参数在寄存器存储,由函数自己清理,后面的参数由栈存储,由调用者清理。具体存储位置见《逆向工程核心原理》p391 37.1.5 2.虽然前四个参数由寄存器存储,但是栈仍然预留了32个字节的空间。具体预留多少个栈空间由调用者约定,而将寄 阅读全文
posted @ 2021-04-28 11:24 乘舟凉 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 当你在调试中遇到 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function de 阅读全文
posted @ 2021-04-23 21:39 乘舟凉 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 这些都代表着是Windows native(原生)系统服务(system services)例程(routines)。Ke - kernel的缩写,代表的是内核模式的API接口。Nt - Windows New Technology的缩写,代表的是Windows 系统服务功能API接口。 大部分以N 阅读全文
posted @ 2021-04-21 10:23 乘舟凉 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: 编译方式: 第1种: 设置:1、项目->配置属性->常规->MFC的使用:在静态库中使用MFC2、项目 -> 配置属性->C/C++->代码生成->运行库 :选择 多线程调试(/MTd)。 编译时,选择的是debug,win32然后执行编译生成方案,在该工程目录下的debug文件中,找到该.exe文 阅读全文
posted @ 2021-04-20 09:22 乘舟凉 阅读(628) 评论(0) 推荐(0) 编辑