随笔分类 - 逆向
逆向知识&笔记
摘要:初探shellcode~ 主要思路: 0.构造要写入的代码: 例:MessageBox: (push 00)*4 = 6a00 call MessageBox(通过要跳转的地址-E8这行指令的地址-5): 相对跳转 E8 xx xx xx xx jmp 回到正常的执行流程: 同上也是相对跳转 E9
阅读全文
摘要:引出问题:如果想改变全局变量的初始值,该怎么做? 如果有初始值,初始值是存在PE文件中的。 在文件中和在内存中的对齐方式不一样。 !!!有些情况下内存对齐和文件对齐一样的也需要计算才能找到对应的位置!!! 内存中展开从ImageBase(扩展PE头中)开始,然后依次对齐。 RVA: 相对虚拟地址 =
阅读全文
摘要:今天复习了一下tcp通信的实现,写了写代码。 简单的总结一下: 服务器作为监听者的角色需要先创建服务器socket套接字,然后使用bind绑定套接字和端口信息等等,再创建用于连接客户端的socket套接字,使用accept函数等待客户端的连接并处理。 客户端则只需要创建用于连接服务器的socket套
阅读全文
摘要:主要涉及,PE文件的两种状态->文件对齐和内存对齐。 节表由n(在标准PE头中有属性标明数量)个IMAGE_SECTION_HEADER结构体(40bytes)组成: 结构如下: 1 typedef struct _IMAGE_SECTION_HEADER { 2 BYTE Name[IMAGE_S
阅读全文
摘要:本随笔记录通过win32api学习进程间通信和dll注入外挂原理的学习过程 基本思路: 通过dll注入的方式将代码加载进目标进程 通过共享内存的方式进行数据通信(共享物理页) 通过循环读取命令队列,并通过内联汇编的方式调用各种函数 准备/具体实现: 1.获取进程PID: 说明通过函数去实现,这样就不
阅读全文
摘要:本文记录学习远程线程注入dll的过程 思路:通过LoadLibrary函数将自己的dll加载至目标进程的空间并执行代码。 具体实现步骤: 在A进程中分配空间,存储"X.dll"的文件路径 获取LoadLibrary函数的地址 创建远程线程,执行LoadLibrary函数 涉及的具体api函数: Lo
阅读全文