IDA+VM调试分析主引导区病毒key加密算法

#1.修改虚拟机vmx配置,后面附加上

debugStub.listen.guest32 = "TRUE"
debugStub.hideBreakpoints = "TRUE"
bios.bootDelay = "12000"

bios.bootDelay = “12000” 表示12s延时等待IDA远程连接调试,默认端口为8832.
#2.因为IDA默认反汇编是32位,而MBR是16位汇编代码,所以需要调整
在这里插入图片描述
#3.在mbr载入内存处0x7c00处下断点
在这里插入图片描述
#4.调用int 13 42号磁盘读取功能读取0x20个扇区到0x8000处执行
在这里插入图片描述
#5.既然读取到内存执行,可以先把32个扇区的内存,每个扇区占用512字,32个扇区也就是0x4000字,先dump下来分析逻辑,idc脚本如下:

static main(void)
{
auto fp,begin,end,dexbyte;
fp =fopen("F:\dump.so","wb");
begin=0x8000;
end=0xb000;
for(dexbyte=begin;dexbyte<end;dexbyte++)
fputc(Byte(dexbyte),fp);
}

#6.查看输入页面
在这里插入图片描述

#7.静态分析dump.so,为了兼容数据,调整offset并Alt+s设置16位反汇编,找到提示错误密匙的相关字符串和相关判断逻辑
在这里插入图片描述
#8.通过寻找关键的调用找到判断点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值