随笔分类 -  ReverseCore 学习笔记

摘要:主要采用扰乱代码解析、压缩然后再解密执行、SEH 等来防止被攻破。 当程序中出现这种函数,内部是 可以直接判定是垃圾代码,实际上就是跳转到离 Call 指令 C 字节远的地方。 以 Stolen_Bytes_Pespin.exe 为例: 到达入口断点后,保持单步执行,不然很容易跑飞。可以看到,程序边 阅读全文
posted @ 2020-10-17 19:53 Rev_omi 阅读(253) 评论(0) 推荐(0)
摘要:异常 ①SEH,以 DynAD_SEH.exe 程序为例 首先改变了 SEH 链,在 int 3 触发异常,此时注意栈中的 SEH 链,对对应的函数下断点即可暂停下来。 可以看到 EIP 被改变后,函数的执行流程即被改变。对 Contex(0xB6) 结构体中 EIP 指向的地址下断点。 此时直接就 阅读全文
posted @ 2020-09-25 20:59 Rev_omi 阅读(750) 评论(0) 推荐(0)
摘要:NtQueryInformationProcess( ) 将第二个参数设置为不同的特定值并调用该函数,就能将不同的数据写入到第三个参数。 该枚举类型与调试器探测有关的成员有 ProcessDebugPort ( 0x7 ) ,ProcessDebugObjectHandle ( 0x1E ),Pro 阅读全文
posted @ 2020-09-19 19:56 Rev_omi 阅读(377) 评论(0) 推荐(0)
摘要:PEB 前面讲过,与反调试相关的 PEB 结构体成员有 ①PEB.BeingDebugged(+0x2) 修改该值为0即可 ②PEB.Ldr(+0xC)—— 仅适用于 Win XP 调试进程时,其内存区域会出现一些特殊标识,未使用的堆内存区域会全部填充着 0xFEEEFEEE ,PEB.Ldr 指向 阅读全文
posted @ 2020-09-16 17:08 Rev_omi 阅读(206) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2020-09-12 17:10 Rev_omi 阅读(109) 评论(0) 推荐(0)
摘要:SEH 是 Windows 操作系统提供的异常处理机制,在程序源代码中使用 __try __catch __finally 等关键字来具体实现。 进程在运行过程中发生异常,OS 会委托进程处理,但如果进程内没有具体实现 SEH ,那么 OS 会启动默认的异常处理机制,终止进程运行。如果有调试器,则先 阅读全文
posted @ 2020-09-12 00:14 Rev_omi 阅读(521) 评论(0) 推荐(0)
摘要:PEB 结构体也很庞大,与代码逆向分析相关的有: ① BeingDebugged Win 7 kernel32.dll 中此 API 检查当前进程是否处于调试状态: 先找到 TEB ,再找到 PEB ,最后找到该值。 ② ImageBaseAddress GetModuleHandle() API 阅读全文
posted @ 2020-08-29 16:42 Rev_omi 阅读(163) 评论(0) 推荐(0)
摘要:TEB(Thread Environment Block,线程环境块),此结构体包含进程中运行的线程的各种信息,进程中的每个线程都对应一个 TEB 结构体。 由于微软的符号服务器无法正常访问,因此在没有符号的情况下,无法查看自己系统中 TEB 结构体。 TEB 结构体成员众多且结构复杂,在用户模式下 阅读全文
posted @ 2020-08-29 15:42 Rev_omi 阅读(272) 评论(0) 推荐(0)
摘要:TLS(Thread Local Storage,线程局部存储)回调函数(Callback Function)常用于反调试。 TLS 回调函数的调用运行要先于 EP 代码的执行。它是各线程独立的数据存储空间,可修改进程的全局/静态数据。 若在编程中启用了 TLS,PE 头文件中会设置 TLS 项目, 阅读全文
posted @ 2020-08-27 22:44 Rev_omi 阅读(1284) 评论(0) 推荐(0)
摘要:由于从 Win 7 开始引入了会话机制,因此使得之前通过 CreateRemoteThread() API 注入的旧方法对某些进程(服务进程)不再适用. 注入非0级的会话层能够成功,而对于0级会话的进程,例如 svchost.exe 会注入失败. 探索一下原因: 在 OD 中打开程序,并输入参数( 阅读全文
posted @ 2020-08-24 16:08 Rev_omi 阅读(372) 评论(0) 推荐(0)
摘要:会话( Session )指登录后的用户环境.大部分OS允许多个用户同时登录,并为每个用户提供独立的用户环境. Win 7 以前, 登录用户的会话 ID 从0开始, Win 7 及以后用户的会话 ID 从1开始. 取而代之的是,系统会话 ID 为0. 由于会话0中的进程并未完全隔离,因此会话1中的进 阅读全文
posted @ 2020-08-20 13:46 Rev_omi 阅读(103) 评论(0) 推荐(0)
摘要:WOW64Test_x86.exe: 多熟悉熟悉程序的流程,多看,多调试. ①被调试者是一个控制台应用程序,那么会调用 GetCommandLine() 返回当前程序的路径. ②main() 函数前会有 argc 与 argv 的压栈, 一个是参数个数,一个是带有程序名字的路径指针. WOW64Te 阅读全文
posted @ 2020-08-19 10:35 Rev_omi 阅读(90) 评论(0) 推荐(0)
摘要:PE32+ 是 Windows OS 使用的可执行文件格式. 64位 Windows OS 中进程的虚拟内存为16TB,其中低位的8TB供用户模式使用.高位的8TB供内核模式使用. IMAGE_NT_HEADERS IMAGE_FILE_HEADER x86 PE32 固定为 014C. x64 P 阅读全文
posted @ 2020-08-17 17:03 Rev_omi 阅读(674) 评论(0) 推荐(0)
摘要:64位系统中内存地址为64为,因此含有绝对地址的指令大小比原来增加4个字节. 64位可以表示的数为 264 = 16EB .考虑到实际性能,减少内存管理的开销.实际没用到这么多. 通用寄存器 通用寄存器大小扩展到64位,数量也增加到18个( 新增 R8~R15 寄存器 ).同时,64位本地模式不使用 阅读全文
posted @ 2020-08-14 18:50 Rev_omi 阅读(202) 评论(0) 推荐(0)
摘要:Intel 64 一般用于高性能服务器,平常很少见到. 所以32位源码移植到64位系统时,只需要转换一下指针的类型就可以了. WOW64: 两个文件夹中的 DLL 文件 的名字都一样,大小不同. 即32位程序返回的文件夹名会被修改成64位的文件夹名,但是文件内容依然是32位的. 并不是直接将上述的文 阅读全文
posted @ 2020-08-12 16:22 Rev_omi 阅读(158) 评论(0) 推荐(0)
摘要:Win 7 中 Process explorer 中 IE 浏览器所加载的 DLL 文件: 如何查看库文件的导出函数: 下载 VS 后直接在搜索栏输入 VS (第一个和第三个都可以),打开命令窗口,输入 命令 " dumpbin /exports 库文件绝对路径 " 就可以看到函数. 若后面再加上" 阅读全文
posted @ 2020-08-10 19:54 Rev_omi 阅读(490) 评论(0) 推荐(0)
摘要:前面的方法会频繁的进行脱钩和挂钩操作,并且在多线程环境中容易导致代码错误.因此使用 "热补丁" 技术就很必要了. 热补丁(Hot Patch/Fix ) 又称为7字节代码修改技术. 可以看到,前面七个字节并无实际意义.微软使用这种方法就是为了方便在不关机的情况下临时修改库文件,重启时修改的目标库文件 阅读全文
posted @ 2020-08-08 16:19 Rev_omi 阅读(249) 评论(0) 推荐(0)
摘要:全局钩取 API : ①Kernel32.CreatProcess() ,可以用来创建新进程,其它启动运行进程的 API ( WinExec() , ShellExecute() , system() ) 在其内部也是调用此 API . explorer.exe是 Windows 程序管理器或者文件 阅读全文
posted @ 2020-08-06 16:22 Rev_omi 阅读(286) 评论(0) 推荐(0)
摘要:隐藏进程(Stealth Process)在代码逆向分析领域中的专业术语为RootKit.它是指通过修改(hooking)系统内核来隐藏进程、文件、注册表等的一项技术. IAT钩取是通过修改IAT值来实现,而API代码修改则是通过将API代码的前五个字节修改为JMP xxxxxxx 指令来钩取API 阅读全文
posted @ 2020-08-03 14:24 Rev_omi 阅读(573) 评论(0) 推荐(0)
摘要:需要明确自己要修改的功能对应的API函数,这个需要经验积累. IAT钩取通过修改IAT中保存的API地址来钩取某个API. 大致流程如下: 1. 通过InjectDll 将自己写的DLL文件注入目标进程. 2. 在自己写的Dll Main函数中获取本进程中的 SetWindowTextW 的函数地址 阅读全文
posted @ 2020-08-02 21:34 Rev_omi 阅读(312) 评论(0) 推荐(0)