Obsidium v1.5.4壳 逆向分析

news/2024/11/17 5:27:29/

样本是使用这个壳进行打包的 来进行逆向
在这里插入图片描述
进入X32 DBG中
进来一看就是经典花指令 混淆解析器
在这里插入图片描述
可以在CE中查找指令地址 来得到当前真正执行的指令
在这里插入图片描述
对SEH链进行劫持
在这里插入图片描述

马上就来个int 1进入异常处理函数
在这里插入图片描述
无视异常 直接进去
观察Zwcontinue函数传进去的Context结构体
结构体偏移B8位置为新线程的EIP 在新EIP位置下一个断点
在这里插入图片描述
通过遍历DLL 导出表的方式来获取函数地址
在这里插入图片描述
RemoveVectoredExceptionHandler 删除刚刚的异常处理函数
添加新的解密函数
在这里插入图片描述
使用aesenc 指令集 对数据进行AES解密
在这里插入图片描述
在这里插入图片描述
跳出来之后 再经过一个异常就能进入主程序
但是脱壳还是不会 太菜了


http://www.ppmy.cn/news/1456035.html

相关文章

SFP、SFP+、SFP28之间的区别是什么?

随着网络技术的不断发展,光纤通信在各个领域中得到了广泛的应用。SFP、SFP和SFP28光模块作为三种常见的光模块类型,具有不同的特点和适用范围。本文将从尺寸、传输速率、兼容性、功耗、应用等方面来比较SFP、SFP和SFP28。 什么是SFP? SFP:&a…

华为OD机试【最大N个数与最小N个数的和】(java)(100分)

1、题目描述 给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和,需要对数组进行去重。 说明: ● 数组中数字范围[0, 1000] ● 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1 ● 输入非法返回-…

滑块槽位最优寻找

说明 如果图像中存在多个干扰槽,并且我们只想找到与滑块最匹配的槽,我们可以通过一些额外的策略来实现。一种方法是计算每个槽与滑块的距离,并选择距离最近的那个作为最匹配的槽 代码 import cv2 import numpy as npdef calculate_distance(cx_slider, cy_slider, cx_slot, …

SparkStructuredStreaming状态编程

spark官网关于spark有状态编程介绍比较少,本文是一篇个人理解关于spark状态编程。 官网关于状态编程代码例子: spark/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredComplexSessionization.scala at v3.5.0 apache/spark (github…

​「Python绘图」绘制五角星

python 绘制五角星 一、预期结果 二、核心代码 import turtle print("开始绘制五角星")# 设置画布尺寸 # screen turtle.Screen() # screen.setup(width500, height500)# 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle")# 移动画笔到起始位置 …

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置,可以在 Maven 构建过程中自动构建 Docker 镜像,而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

Linux 基础IO篇

1. C语言中的文件操作 1 #include<stdio.h>2 3 int main()4 {5 FILE* pf fopen("log.txt", "w");6 if(NULL pf)7 {8 perror("fopen");9 return 1; 10 }11 fprintf(pf, &quo…

cookie没有携带的问题

背景&#xff1a; build-model应用在hcs迁移的时候&#xff0c;前、后端各自部署了一个新应用&#xff0c;但是调试时候发现没有cookie&#xff0c;导致鉴权失败&#xff01; 注&#xff1a; 后端通过cookie中的token做鉴权的&#xff0c;前端调用接口的时候&#xff0c;查看&…