上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页
摘要: 我们可以通过使用CRC32算法计算出程序的CRC字节,并将其写入到PE文件的空缺位置,这样当程序再次运行时,来检测这个标志,是否与计算出来的标志一致,来决定是否运行程序,一旦程序被打补丁,其crc32值就会发生变化,一旦发生变化,程序就废了,绕过的方式则是,1.动态打补丁,2.找到crc32算法位置将跳转nop掉,3.直接手动计算出crc32并覆盖到原始程序的crc算法位置。 阅读全文
posted @ 2020-06-11 16:11 lyshark 阅读(2468) 评论(0) 推荐(0)
摘要: Windbg是Microsoft公司免费调试器调试集合中的GUI的调试器,支持Source和Assembly两种模式的调试。Windbg不仅可以调试应用程序,还可以进行Kernel Debug。结合Microsoft的Symbol Server,可以获取系统符号文件,便于应用程序和内核的调试。Windbg支持的平台包括X86、IA64、AMD64。 阅读全文
posted @ 2020-06-10 15:55 lyshark 阅读(1772) 评论(0) 推荐(0)
摘要: CREATE_PROCESS_DEBUG_EVENT 创建进程的调试事件。CREATE_PROCESS_DEBUG_INFO结构体描述了该类调试事件的详细信息,OUTPUT_DEBUG_STRING_EVENT 该事件,当被调试进程调用OutputDebugString时就会引发该类调试事件,OUTPUT_DEBUG_STRING_INFO结构体描述了关于该事件的详细信息,LOAD_DLL_DEBUG_EVENT 当DLL被加载时,会调用该回调,LOAD_DLL_DEBUG_INFO结构体描述了它的详细信息,dll的路径被放在了,hfile字段,该字段默认是句柄方式存储的,需要手工转换。 阅读全文
posted @ 2020-06-09 16:55 lyshark 阅读(1251) 评论(0) 推荐(0)
摘要: 内存遍历,枚举数据,实现特征码扫描。 阅读全文
posted @ 2020-06-08 17:59 lyshark 阅读(3074) 评论(0) 推荐(0)
摘要: 网上收集的一些开发常用的加密解密算法的使用技巧,第三方库 Crypto++ 也可实现 Base64加密1 base64.h #ifndef base64_h #define base64_h #include <stdio.h> #include <Windows.h> #include <stdl 阅读全文
posted @ 2020-06-05 21:46 lyshark 阅读(4823) 评论(0) 推荐(0)
摘要: 将生成的 shellcode 放到 web 服务器上,本地不保存恶意代码,本地只负责加载到内存运行,这样可以很好的躲过查杀。 阅读全文
posted @ 2020-06-02 18:05 lyshark 阅读(1454) 评论(0) 推荐(0)
摘要: npcap 是Nmap自带的一个数据包处理工具,Nmap底层就是使用这个包进行收发包的,该库,是可以进行二次开发的,不过使用C语言开发费劲,在进行渗透任务时,还是使用Python构建数据包高效,这东西没啥意义. 阅读全文
posted @ 2020-05-29 22:31 lyshark 阅读(5645) 评论(0) 推荐(0)
摘要: 手动创建单进程: 下面通过一个实例来分别演示进程的创建函数. #include <windows.h> #include <stdio.h> BOOL WinExec(char *pszExePath, UINT uiCmdShow) { UINT uiRet = 0; uiRet = ::WinE 阅读全文
posted @ 2020-05-27 20:25 lyshark 阅读(1539) 评论(0) 推荐(0)
摘要: 枚举注册表启动项: 通过添加注册表启动项,可以很方便地完成自启动,常用的启动位置有CurrentVersion,BootExecute,Active Setup. #include <stdio.h> #include <Windows.h> void Enum_Regedit(HKEY Reg_R 阅读全文
posted @ 2020-05-27 20:24 lyshark 阅读(2117) 评论(0) 推荐(0)
摘要: LyDebug 是一款使用C/C++语言开发实现的命令行应用层动态反汇编调试器,通过运用Windows系统下的调试API函数并配合Capstone反汇编引擎,完美实现了x86与x64程序的调试功能,该调试器目前功能包括寄存器查看修改,软硬件断点的设置删除以及遍历,单步步进步过操作,堆栈检查,内存检查等。 阅读全文
posted @ 2020-05-25 21:00 lyshark 阅读(2366) 评论(0) 推荐(1)
摘要: ELF文件格式,是一个开放的可执行文件和链接文件格式,其主要工作在Linux系统上,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件,ELF文件格式类似于PE格式,但比起PE结构来ELF结构显得更加的简单,Linux文件结构相比于Windows结构来说简单一些. 阅读全文
posted @ 2020-05-22 12:08 lyshark 阅读(2620) 评论(0) 推荐(0)
摘要: URL路径拆分: 例如我们传入 http://www.baidu.com/index.php 拆分为 www.baidu.com 和 /index.php #include <Windows.h> #include <iostream> int ParseUrl(char szUrl[], char 阅读全文
posted @ 2020-05-20 09:08 lyshark 阅读(1647) 评论(0) 推荐(0)
摘要: 注册表,与服务常用来注册自启动程序,开机自动运行,多用于后门。 枚举注册表启动项: 遍历注册表 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run #include <stdio.h> #include <Windows. 阅读全文
posted @ 2020-05-19 20:58 lyshark 阅读(1397) 评论(0) 推荐(0)
摘要: 权限提升 #include <Windows.h> #include <stdio.h> BOOL SetPrivilege(LPCTSTR lpszPrivilege, BOOL bEnablePrivilege) { TOKEN_PRIVILEGES tp; HANDLE hToken; LUI 阅读全文
posted @ 2020-05-16 17:43 lyshark 阅读(1756) 评论(0) 推荐(0)
摘要: 加号运算符重载: 重载加号运算符,让 p3 = p1 + p2 改成 p3.mage = p1.mage + p2.mage 实现两个数据成员的相加。 告诉编译器,两个类中的数据成员应该怎么相加。 成员函数相加 +号运算符重载 成员函数 二元 #include <iostream> #include 阅读全文
posted @ 2020-05-12 12:17 lyshark 阅读(624) 评论(0) 推荐(0)
摘要: 简单定义类 #include <iostream> #include <string> using namespace std; class Student { public: int uid; char *name; int age; public: void set(int id, char * 阅读全文
posted @ 2020-05-12 09:33 lyshark 阅读(644) 评论(0) 推荐(0)
摘要: 标准命名空间 命名空间的使用 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; // 命名空间必须定义在全局的作用域下 // 命名空间可以嵌套命名空间 // 如果命名空间冲突,则会自动的合并为一个命名空间 阅读全文
posted @ 2020-05-11 15:55 lyshark 阅读(1050) 评论(0) 推荐(0)
摘要: C语言的字符串操作 strtok 实现字符串切割: 将字符串根据分隔符进行切割分片. #include <stdio.h> int main(int argc, char* argv[]) { char str[] = "hello,lyshark,welcome"; char *ptr; ptr 阅读全文
posted @ 2020-05-11 15:28 lyshark 阅读(7994) 评论(0) 推荐(1)
摘要: 创建临时文件 #include <stdio.h> int main(int argc, char *argv[]) { FILE *temp; char c; if ((temp = tmpfile()) != NULL) { fputs("hello lyshark\n", temp); // 阅读全文
posted @ 2020-05-11 12:51 lyshark 阅读(1409) 评论(0) 推荐(0)
摘要: 结构体的定义与使用: #include <stdio.h> #include <stdlib.h> struct Student { int num; char name[30]; char age; }; int main(int argc, char* argv[]) { struct Stud 阅读全文
posted @ 2020-05-10 15:07 lyshark 阅读(1033) 评论(0) 推荐(1)
摘要: 指针数组: #include <stdio.h> #include <stdlib.h> #include <string.h> void PrintInt() { int x = 10,y = 20,z = 30; int *Array[] = { &x, &y, &z }; // 定义数组指针 阅读全文
posted @ 2020-05-08 11:30 lyshark 阅读(685) 评论(0) 推荐(0)
摘要: (伪)冒泡排序算法: 相邻的两个元素之间,如果反序则交换数值,直到没有反序的记录为止. #include <stdio.h> void BubbleSort(int Array[], int ArraySize) { int x, y, temporary; for (x = 0; x < Arra 阅读全文
posted @ 2020-05-06 13:27 lyshark 阅读(716) 评论(0) 推荐(0)
摘要: Qt程序编译后,需要去qt目录拷贝几个文件,与qt程序放在一起该程序才可以脱离开发环境而独立运行下去,在开发环境下编译好代码以后,还需要进行以下操作将其打包才可以在别的机器上正常运行。 阅读全文
posted @ 2020-05-05 16:01 lyshark 阅读(4077) 评论(0) 推荐(2)
摘要: 由于内容较少,所以,不想把它放在我的本地博客中了,暂时保存在这里,代码有一部分来源于网络,比较经典的案例,同样收藏起来。 Stack 栈容器 Stack容器适配器中的数据是以LIFO的方式组织的,它是一种先进后出的数据结构,栈允许对元素进行新增,移除,获取栈顶,等操作,但栈不允许对内部元素进行遍历, 阅读全文
posted @ 2020-05-01 11:59 lyshark 阅读(988) 评论(0) 推荐(0)
摘要: 反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解、外挂技术、病毒分析、逆向工程、软件汉化等领域,学习和理解反汇编对软件调试、系统漏洞挖掘、内核原理及理解高级语言代码都有相当大的帮助,软件一切神秘的运行机制全在反汇编代码里面。下面将分析VS 2013 编译器产生C代码的格式与实现方法,研究一下编译器的编译特性。 阅读全文
posted @ 2020-04-29 08:52 lyshark 阅读(5975) 评论(0) 推荐(2)
摘要: 反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解、外挂技术、病毒分析、逆向工程、软件汉化等领域,学习和理解反汇编对软件调试、系统漏洞挖掘、内核原理及理解高级语言代码都有相当大的帮助,软件一切神秘的运行机制全在反汇编代码里面。 阅读全文
posted @ 2020-04-22 21:31 lyshark 阅读(2972) 评论(0) 推荐(0)
摘要: 数组和指针都是针对地址操作,但它们有许多不同之处,数组是相同数据类型的集合,以线性方式连续存储在内存中,而指针只是一个保存地址值的4字节变量。在使用中,数组名是一个地址常量值,保存数组首元素地址不可修改,只能以此为基地址访问内存数据;而指针却是一个变量,只要修改指针中所保存的地址数据,就可以随意访问,不受约束.本章将深入介绍数组的构成以及两种寻址方式。 阅读全文
posted @ 2020-04-18 09:56 lyshark 阅读(1795) 评论(0) 推荐(0)
摘要: 反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解、外挂技术、病毒分析、逆向工程、软件汉化等领域,学习和理解反汇编对软件调试、系统漏洞挖掘、内核原理及理解高级语言代码都有相当大的帮助,软件一切神秘的运行机制全在反汇编代码里面。 阅读全文
posted @ 2020-04-17 09:49 lyshark 阅读(1157) 评论(0) 推荐(0)
摘要: 反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解、外挂技术、病毒分析、逆向工程、软件汉化等领域,学习和理解反汇编对软件调试、系统漏洞挖掘、内核原理及理解高级语言代码都有相当大的帮助,软件一切神秘的运行机制全在反汇编代码里面。 阅读全文
posted @ 2020-04-16 12:48 lyshark 阅读(2054) 评论(0) 推荐(0)
摘要: 内核层与应用层之间的数据交互是必不可少的部分,只有内核中的参数可以传递给用户数据才有意义,一般驱动多数情况下会使用`SystemBuf`缓冲区进行通信,也可以直接使用网络套接字实现通信,如下将简单介绍通过SystemBuf实现的内核层与应用层通信机制。 阅读全文
posted @ 2020-04-13 10:06 lyshark 阅读(6124) 评论(1) 推荐(9)
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 32 下一页