分类: Windows Reverse

15 篇文章

thumbnail
运算符重载
前面做题的时候发现c++逆向的题目里面对于运算符重载的考察率还是很高的,所以单独学一下 1.概述 1.概念 用同一个运算符完成不同的运算 2.规定 不能改变运算符的优先级 不能改变运算符的结合性 默认参数不能和重载的运算符一起使用,也就是说,在设计运算符重载成员函数时不能使用默认函数 不能改变运算符的操作数的个数 不能创建新的运算符,只有已有运算符…
thumbnail
回调函数
1.概述 1.特征 1.作为参数传递给另一个函数 2.在被调用函数执行完毕后被调用 2.使用实例: 1.事件处理:鼠标点击,键盘输入,网络请求等 2.异步编程:读取文件,发送邮件,下载文件等 3.数据处理:对数组进行排序,过滤,映射等 4.开发插件:WordPress 插件,jQuery 插件等 5.处理操作系统 6.框架的API 3.基本概念解释…
thumbnail
花指令的解析
1.反编译算法 线性扫描算法:逐行反汇编(无法将数据和内容进行区分),遇到跳转不会跳过去进行分析,而是继续分析下一行 递归行进算法:按照代码可能的执行顺序进行反汇编程序 2.花指令解析 花指令(JunkCode)指的是使用一些技巧将代码复杂化,使人难以阅读的技术 广义上: 花指令与代码混淆(ObfusedCode)同义,包括结构混淆、分支混淆、语句…
thumbnail
宏病毒学习(基于羊城杯DocCrack分析)
基本概念 宏 为了避免相同的重复操作设计的工具,利用简单的语法编写成宏,从而减少重复相同动作 宏病毒 寄存在文档或者模板宏当中的病毒,打开文档就会激活宏,驻留在normal模版上,从而进行传播 宏语言 VISUAL BASIC FOR APPLICATION(简称VBA),支持访问很多操作系统函数,,同时支持文档打开时自动执行宏 数据文件格式 .d…
thumbnail
VM逆向学习
1.基本原理 1.概述 这里的vm基本逆向,是一种解释执行系统或者模拟器 (并非vmware之类的虚拟机) 2.基本结构 1.vm_start 虚拟机的入口函函数,初始化虚拟机环境 2.vm_dispatcher 调度器,解释opcode,并选择对应的handle函数执行3.opcode 当handle执行完后会条回到这里,形成一个循环 3.opc…
thumbnail
try-catch-finally 用法
我在进行逆向的时候就遇到了将加密代码放在try,catch函数中进行隐藏,所以出现了无法反编译的情况,所以其前来学习其基本原理 1.try-catch-finally执行顺序 try中出现异常跳转到catch 若catch中出现异常则跳转到finall try或catch正常执行若存在return则先执行return的代码并保存返回值信息(基本类型…
TLS反调试
1.概念 线程局部存储(Thread Local Storage,TLS)是一种线程级别的存储机制,它允许每个线程在运行时都拥有自己的私有变量 这些变量只能被该线程访问,而不会被其他线程所共享 (在多线程编程中,使用线程局部存储可以避免竞争条件和锁等同步机制的开销,提高程序的性能和并发能力。线程局部存储通常通过使用操作系统提供的API来实现,比如W…
thumbnail
SMC加密
1.概述 1.SMC(Self-Modifying Code): 可以在一段代码执行之前先对它进行修改 2.实现背景: SMC技术在DOS时代非常流行,因为DOS时代更接近系统底层,大部分SMC以汇编来实现 3.实现原理: 代码以加密形式保存在可执行文件中,然后在程序执行时再动态解密,这样可以有效地对付静态分析 4.解决思路: 动态跟踪或者分析出解…
thumbnail
SMC的逆向示例学习
1.概述学习 SMC(Self Modifying Code)动态代码加密技术: 指通过修改代码或数据,阻止别人直接静态分析 然后在动态运行程序时对代码进行解密,达到程序正常运行的效果 2.隐藏加密原理以及处理 1.处理方法: 1.找到对代码或数据加密的函数后通过idapython写解密脚本 2.动态调试到SMC解密结束的地方dump出来 2.处理…
SEH异常处理以及反调试
seh反调试原本用于异常处理,也可以用于逆向工程的反调试 基于try excpt finally关键字的函数实现 1.异常处理方法 1.正常的异常处理方法 有处理代码顺利处理,没有seh则启动默认处理(终止进程) 2.调试运行的异常处理 调试器几乎拥有被调试者的所有权限,异常优先由调试器处理 此时调试器会暂停,处理异常后继续调试 处理方式: 调试器…