逆向笔记【壹】

1、常见压缩壳:UPX、ASPACK、NSPACK。

2、常见加密壳:Asprotect、Zprotect、Yoda、Telock、Svkp。

3、常见虚拟机保护壳:Vmprotect、Themida、WinLicense 。

4、常用动态调试工具:ollydbg、Immunitydbg、Windbg,其中ollydbg使用最多,逆向必备,Immunitydbg为Immunity公司对ollydbg之后的改进版,支持Python脚本,但是断点不能保存,更适合漏洞利用领域,Windbg界面不甚友好,但是微软自家的东西对windows系统支持很好,调试内核驱动程序必备,三者都支持自定义脚本编写。

5、常用静态分析工具:Win32Dasm、Ida pro,Win32Dasm已经停止更新了,Ida功能更强更常用,结合hex插件反编译出C程序代码的效果极佳哦。

6、Peid是目前最常用的查壳类型的工具,内置有外壳特征库及识别算法,也可以自己下载特征库自制查壳工具。

7、DeDe是逆向分析Delphi及Brond C++程序的利器,可以看到窗体及其它资源的信息,还可以查看对应按钮等的处理程序,便于快速定位分析。

8、机器码:用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合,一般反汇编出的结果为16进制显示,如空指令nop的机器码为90(16进制);

9、断点:调试器的功能之一,可以让程序中断在需要的地方,常用的断点包括:INT3断点(也称软断点)、硬件断点(利用CPU的调试寄存器设置)、内存断点(利用操作系统的缺页异常处理机制)、消息断点、条件断点等。

10、硬件断点利用CPU的调试寄存器,最多只能设置4个,在软断点被检测的多时下硬件断点和内存断点也是极好的。

11、调试器的单步跟踪是结合的调试器软断点机制,在调试器中实现的逐指令或逐过程执行程序。

12、父进程:指已创建一个或多个子进程的进程,调试器如Ollydbg一般使用打开或附加的方式调试程序,调试器就作为调试程序的父进程,一般正常的应用程序是由explorer.exe创建的,父进程就是explorer.exe等,可以利用这个特点做反调试。

13、堆栈平衡定律:手工脱壳时利用外壳程序首先需要保存原程序的入口信息(寄存器、堆栈使用情况等),通过标记刚加载时入口点的堆栈位置,等外壳程序恢复原程序的ESP寄存器值的时候,一般就到了OEP位置附近。

14、内存访问断点:根据操作系统的内存管理机制,经常未使用的内存页不会放置在缓存中,当程序需要访问到该页内存时就会触发缺页异常,就会交给调试器处理,而外壳程序完成原程序各个区段的解压操作之后会跳转到原程序开始执行,在使用Ollydbg调试器手工脱壳时,可以手工设置内存访问断点,当程序解压完某个区段之后会自动中断在缺页异常处,再进行单步跟踪就能到达OEP处。

15、shellcode:一段完成特定功能的代码,一般用于获取主机权限,常见的有新建用户、弹出消息框(测试用)、绑定端口等,与溢出漏洞联系紧密,经常在利用漏洞获取程序控制权之后执行得到被攻击主机的部分权限。

16、网页挂马一般利用浏览器或其插件在解析特定网页过程中的漏洞控制浏览器程序流程执行shellcode(一般为反弹连接或是下载并执行恶意程序的功能),用户在使用浏览器访问不明链接时就可能成为被控制的“肉鸡”,现在国内主机WindowsXp+IE8的仍然占很大分量,很危险(⊙o⊙)哦,Windows7下则安全的多。

17、软件加壳过程一般是将原程序的代码数据等压缩或加密处理,在程序中新建一个区段存放外壳代码,并修改程序入口使外壳部分代码先于原程序开始执行,在完成原程序数据的解压缩或解密之后再跳转到原程序的代码执行。

18、内存偏移地址:也叫VA,在保护模式下程序被加载到内存后,操作系统为其分配了自己独立的4GB虚拟内存空间,在这个空间定位的地址就称为虚拟内存地址,范围为0×00000000~0xffffffff,相对于0×00000000的偏移称为内存偏移地址。

19、区段:也可以称为“节”、“区块”,用于存放可执行程序不同类型数据的地方,如代码段、数据段、资源段等,将程序的数据放置在不同的区段可以设置不同的权限便于管理,实际存放的数据类型或区段名称可以根据根据需要灵活设置。

JavaScript逆向工程涉及到逆向分析、代码还原、代码修改等多个方面,其中Webpack作为一个重要的静态模块打包器,也是逆向工程中需要重点关注的一部分。以下是一些关于Webpack逆向笔记: 1. Webpack的打包过程是从入口文件开始的,Webpack会递归地遍历所有依赖模块,并将它们打包成一个或多个Bundle文件。因此,逆向工程的第一步就是找到Webpack打包的入口文件。 2. 在入口文件中,Webpack会通过require或import语句加载其他模块,并递归地遍历所有依赖模块。因此,我们可以通过分析入口文件来了解应用的整体结构和模块依赖关系。 3. 在Webpack的打包过程中,每个模块都会被赋予一个唯一的标识符,这个标识符可以通过module.id来获取。因此,我们可以通过分析打包后的代码,来了解每个模块的标识符和依赖关系。 4. 在Webpack的打包过程中,Loader和Plugin是非常重要的扩展机制,它们可以对模块进行转换和优化。因此,我们可以通过分析Loader和Plugin的源代码,来了解它们的作用和实现原理。 5. 在逆向工程中,我们可以使用Webpack的source-map选项来生成源映射文件,从而方便我们进行代码还原和调试。同时,我们也可以使用Webpack的devtool选项来设置不同的调试工具,以便更好地进行逆向分析和调试。 总的来说,Webpack作为静态模块打包器,在JavaScript逆向工程中扮演着重要的角色。通过对Webpack的逆向分析,我们可以更加深入地了解应用的整体结构和模块依赖关系,从而更好地进行代码还原和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值