- 博客(10)
- 收藏
- 关注
原创 《逆向工程核心原理》----第28章 汇编进行代码注入
一、dll注入和代码注入的区别1.首先字面意思,前者将整个包含攻击函数的dll注入到其他进程中去,后者直接注入可独立运行的代码,也被称为线程注入。dll注入:将攻击函数包含在dll中,加载dll则会执行,然后用VirtualAllocEx给目标进程分配空间,WriteProcessMemory写入该dll,并用LoadLibarary加载kernal32,然后用GetProcAddress得到LoadLibarary的地址,最后创建一个远程线程,执行LoadLibarary加载dll。代码注入:
2022-05-23 22:45:37
1367
原创 《逆向工程核心原理》----第24章DLL卸载
同DLL注入使用LoadLibrary一样,DLL卸载需要使用FreeLibrary。1.使用CreateToolhelp32Snapeshoot()API获取加载到进程中的dll信息2.提权,LookupPrivilegeValue()可以查看权限,AdjustTookenPrivilege()可以禁用/启用函数提权相关函数_爱沧海的博客-优快云博客 提权函数的相关链接3.之后同DLL注入过程类似,获取进程句柄,获取FreeLibrary()地址,创建远程线程<注>这种方
2022-04-24 22:38:24
339
原创 《逆向工程核心原理》----第23章DLL注入的几种方法
主要方法有三:消息钩取,创建远程线程和修改注册表一、消息钩取主要运用Windows系统的SetWindowsHookExA() API在21章有个阻塞notepad键盘输入的例子,有两个文件,HookMain.exe和KeyHook.dll。HookMain代码如下,过程就是加载dll然后执行里面的函数,开始钩取。KeyHook代码中包含几个函数,如下所示其中,DllMain函数在dll文件被加载时就会自动执行;HookStart函数就调用了消息钩取的API,将触发事件WH.
2022-04-24 20:55:30
1909
原创 逆向工程核心原理----第二十章内嵌补丁练习
内嵌补丁这种方法适合于不便直接修改指定的代码,比如程序中含有校验函数,加解密函数等等。一、分析源程序用ollydbg打开unpackme.exe
2022-04-12 21:56:15
251
原创 《逆向工程核心原理》第18章----分析Upack
Upack的PE形式乍一看和规范相去甚远,实际上每一处都是精心设计的,在混淆人工分析的同时完美符合PE规范。主要是采取了以下多种手段。一、重叠PE文件头MZ文件头中对程序运行有用的只有标志位和偏移03C处NT映像头的起始位置,其余地方都是无影响可随意填充其他内容;依此可将NT映像头与MZ文件头重叠。二、修改结构长度扩充空余空间1.在IMAGE_FILE_HEADER结构中,SizeofOptionHeader这个参数代表可选头的大小,由于在PE32中大小是固定的E0,所以当参数大小超过E0时
2022-04-08 19:53:19
347
原创 《逆向核心原理》第十五章----调试notepad_upx.exe
零、前情提要我们常见的压缩比如zip、7z、rar等都是通过合适的压缩算法将大东西变成小东西,就像挤出海绵里的水、压出杯子里的空气或者榨出论文里的水一样;而今天提到的upx称之为运行时压缩,仅针对可执行文件,压缩后仍为可执行文件,其中包含解码程序和源代码。一、比较upx加壳前后的pe结构用peview打开两个exe,加壳前的notepad.exe其中包含text、data、src节,加壳后text和data节消失,取而代之的是upx0和upx1。可以发现notepad_upx.exe中,
2022-04-05 23:55:19
602
原创 攻防世界 Reverse进阶区 EASYRE WP
拖进IDA,直接看伪代码,很简单就只有一个变换过程。<注意点>我们输入的flag明明存储在Arglist中,但24行处是将v11的地址偏移7赋给v5,由v5去完成25-30行的变换过程;这是因为在函数的局部变量声明时,Arglist和v11相邻声明,那么在函数压栈的时候,这两个变量也会是相邻的,Arglist位于【ebp-24h】,v11位于【ebp-14h】,分布如下低地址 。。。 【ebp-14h】v11 。。。...
2022-03-27 22:21:13
252
原创 攻防世界 reverse进阶区 EASYHOOK WP
基础步骤,拉进IDA中按下f5得到main函数的反汇编代码<主要流程>:判断输入flag长度是否为19,一个不明函数401220,接着两个API调用(查了一下就是创建文件然后写入内容,这里是将输入的flag也就是buffer中的内容写入文件),又是一个不明函数401240;判断NumberOfBytesWritten的值,为1则flag正确,可以发现这个参数再writefile和401240函数中都有调用到,初步猜测flag在这俩函数内(后续结果证明我是错的)。双击进入401240函
2022-03-26 21:37:02
566
原创 攻防世界 Reverse进阶区 BABYRE WP
IDA下得到反汇编代码显然,对于judge这个常量先与或处理,而后读取字符串s,判断s长度是否为14;接下来这个judge(s)让我看不懂了,judge不是个数组吗,怎么可以这么使用?<关键点>看了其他大佬的WP才知道,原来还有将data转为code执行的骚操作,所以这里其实是将judge数组的内容当成一个函数来执行,可以使用热键C将data转化为code,也可以用U恢复。调试程序,先让其运行完字符串的初始处理,在if处下断点,观察judge函数的汇编代码1.push
2022-03-24 22:27:06
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人