自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

翻译 IDA Pro第一章 反汇编简介

IDA Pro第一章 反汇编简介

2022-09-27 20:09:26 648

原创 《逆向工程核心原理》----第28章 汇编进行代码注入

一、dll注入和代码注入的区别1.首先字面意思,前者将整个包含攻击函数的dll注入到其他进程中去,后者直接注入可独立运行的代码,也被称为线程注入。dll注入:将攻击函数包含在dll中,加载dll则会执行,然后用VirtualAllocEx给目标进程分配空间,WriteProcessMemory写入该dll,并用LoadLibarary加载kernal32,然后用GetProcAddress得到LoadLibarary的地址,最后创建一个远程线程,执行LoadLibarary加载dll。代码注入:

2022-05-23 22:45:37 1213

原创 《逆向工程核心原理》----第24章DLL卸载

同DLL注入使用LoadLibrary一样,DLL卸载需要使用FreeLibrary。1.使用CreateToolhelp32Snapeshoot()API获取加载到进程中的dll信息2.提权,LookupPrivilegeValue()可以查看权限,AdjustTookenPrivilege()可以禁用/启用函数提权相关函数_爱沧海的博客-CSDN博客 提权函数的相关链接3.之后同DLL注入过程类似,获取进程句柄,获取FreeLibrary()地址,创建远程线程<注>这种方

2022-04-24 22:38:24 254

原创 《逆向工程核心原理》----第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 1822

原创 逆向工程核心原理----第二十章内嵌补丁练习

内嵌补丁这种方法适合于不便直接修改指定的代码,比如程序中含有校验函数,加解密函数等等。一、分析源程序用ollydbg打开unpackme.exe

2022-04-12 21:56:15 213

原创 《逆向工程核心原理》第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 259

原创 《逆向核心原理》第十五章----调试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 534

原创 攻防世界 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 171

原创 攻防世界 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 483

原创 攻防世界 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 268

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除