切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
VB
VB程序的脱壳技巧
VB程序的脱壳技巧
2020-03-02
VB
前端之家
前端之家
收集整理的这篇文章主要介绍了
VB程序的脱壳技巧
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
自己来
解决
吧,也许能搞出个自创的
方法
,叫什么Monster脱壳法。 在这里大家必须了解一引些小知识。 VB程序的启动方式:每个VB程序通常都会
调用
到许多的API,但是其中有一个API是雷 打不动的,这就是我们都知道的ThunRTMain
函数
。VB程序在运行时,都会首先
调用
ThunRTMain
函数
,ThunRTMain
函数
将会为程序初始化进程,并
获取
进程ID等做一些 初始工作。 栈帧:每个任务(进程)都有一个栈,而在这个进程中的每个
函数
被
调用
时会分别从 这个栈中分出一段区域并占用它,这段区域我们称它为栈帧
函数
调用
:每一个
函数
独占自己的栈帧空间,当前正在运行的
函数
的栈帧总是在系统 栈的顶端,在程序运行时当遇到一个call指令,程序会
自动
跳到这个call指定所指的 的地址去执行指令,这时call所指向的地址处的指令的开头一般是这样的: push ebp ; 保存
调用
前的栈桢基址到堆栈 mov ebp,esp ; 把当前堆栈栈顶当做新栈桢基址 其实在做这个动作之前,call指令已经做了另一个动作,就是把call指令下面一条指 令的地址作为被
调用
函数
的返回地址也一起压入了栈中,等到程序遇到retn指令时, 首先从栈中弹出返回地址,并跳到返回地址处执行指令。 现在,我们首先打开VB,做出一个简单的测试程序 接着我们再运行OD,把刚做出来的测试程序载入到OD中,这时我们就可以看到程序停 在了这里 大家看这里的
代码
: 00401128 > $ 68 9C124000 push 0040129C 0040112D . E8 F0FFFFFF call <jmp.&MSVBVM60.#100> 00401132 . 0000 add byte ptr [eax],al 对于一般来说,如果是用VB做的程序,那么它的的入口点基本都是这样的,我们再来 看看第二句的call,这里的call
调用
了一个
函数
<jmp.&MSVBVM60.#100>,但是这到 底是个什么样的
函数
呢?我们在OD中按Ctrl+N打开程序的输入表看看 第一行就是这个MSVBVM60.#100
函数
,我们选中这一行后按回车,然后
代码
就来到了 这里 嘿嘿,原来#100就是ThunRTMain
函数
啊。 我们来用OD跟踪一下程序,因为第二句就是一个call,所以我们要使用F7跟进这个 call,这时,我们只需要F7一下就好,现在,我们来注意一下OD堆栈窗口中的数据 堆栈窗口中的第一句就是“0012FFBC 00401132 返回到无壳.00401132来自 <jmp.&MSVBVM60.#100>”,这是的00401132是什么呢?从上面的图2中,我可以发现 ,这就是ThunRTMain
函数
的返回地址,但是00401128才是我们程序的入口点,从 ThunRTMain
函数
的返回地址和程序入口点的关系,我们可以得出这样一个公式: 程序入口点=ThunRTMain
函数
的返回地址-AH(AH就是十进制的10) 根据上面所得出的结论,我们现在可以进行脱壳了。 实战篇 现在我们给程序加个ASPack的外壳 把加了壳后的新
文件
载入OD,接着在OD的命令行窗口中输入BP ThunRTMain,回车, 给ThunRTMain
函数
下个断点 接着再按F9让程序在OD中运行起来,OD就会被断在 这时就要发挥我们明锐的洞察能力了,嘿嘿,现在我们再来看一下OD右下角的堆栈窗 口中的
内容
我们看第一行,0012FFBC这里的数据,是00401132,后面的说明是“返回到加 壳.00401132来自加壳.00401122”,这里告诉我们的地址00401132就应该是 ThunRTMain
函数
的返回地址了,现在我们再回过头来看看上面的图2,00401132的确 就是ThunRTMain
函数
的返回地址,我们现在想对程序进行脱壳,就需要知道程序的入 口点,根据我们上面得出的那个公式我们来计算一下: 程序OEP=00401132-AH 00401132-AH=00401128 最后我们得出的程序的入口点就是00401128,现在我们知道了程序的入口点,我们只 要把他DUMP出来就可以了,但是因为现在我们的OD正处于msvbvm60的领空,现在我们 DUMP是不合适的,我们必须先返回到程序的领空,我们在OD中按Alt+F9就可以完成这 一步骤,等OD返回程序的领空后,我们在OD的反汇编窗口中点击鼠标右键选择“Dump debugger process” 接着在弹出的窗口中把Modify这一框中的
内容
改为程序的入口点地址 现在我们只要把程序从内在中给DUMP出来就可以了,用PEID 来检测一下我们DUMP 后 的
文件
运行一下,脱壳成功。
上一篇:VB.net学习笔记(二十五)Threadin
下一篇:机房收费(一)之上下机
猜你在找的VB相关文章
VB Format函数
Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 --------------...
作者:前端之家 时间:2020-08-07
vb6/ASP FORMAT MM/DD/YYYY
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTi...
作者:前端之家 时间:2020-08-07
VB.net 捕获项目全局异常
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的...
作者:前端之家 时间:2020-08-07
实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,...
作者:前端之家 时间:2020-08-07
vb,wps,excel 分裂
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m...
作者:前端之家 时间:2020-08-07
VB.NET MYSQL DataGridView 增删改查(INSERT,SELECT,UPDATE,DELETE)
Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS ...
作者:前端之家 时间:2020-08-07
VB.NET 使用ADODB連接資料庫滙出到EXCEL
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop Private Sub A1() Di...
作者:前端之家 时间:2020-08-07
vb.net 多线程運用 ping
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class F...
作者:前端之家 时间:2020-08-07
VB等待进程结束
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5...
作者:前端之家 时间:2020-08-07
vb中去掉string数组的一部分
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时...
作者:前端之家 时间:2020-08-07
编程分类
PHP
Java
Java SE
Python
C#
C&C++
Ruby
VB
asp.Net
Go
Perl
netty
Django
Delphi
Jsp
.NET Core
Spring
Flask
Springboot
SpringMVC
Lua
Laravel
Mybatis
Asp
Groovy
ThinkPHP
Yii
swoole
最新文章
• VB Format函数
• vb6/ASP FORMAT MM/DD/YYY
• VB.net 捕获项目全局异常
• 实现用VB.Net/(C#)开发K/3
• vb,wps,excel 分裂
• VB文件 hash 查看器
• VB.NET MYSQL DataGridVie
• VB.NET 使用ADODB連接資料
• vb.net 多线程運用 ping
• VB等待进程结束
热门标签
更多 ►
文件时间
pythonm
相等性
PHP Warning
时间问题
问题解决
pcntl_signal
采样点
wav模块
动态文本
调用频率限制
对外暴露
多个访问请求
更新数据表
模型结构
type()方法
比较速度
手写体
sobel算子
保存模型
Image类
nn.Conv2d
pytorch1.0
kaggle
DCGAN
交并比
range()用法
打印模型
反卷积
卷积