恶意代码分析实战 Lab9

lab09-01

1这个程序就是第三章lab03-04那个会删除自身的程序,之前我们没有分析完,现在继续

想要解决的是正确安装程序,因为他会自我删除,只有避免了他的自我删除我们才能继续分析他的功能

IDApro打开程序,程序要求参数要大于1,这就说明我们需要输入lab09-01.exe "一些参数"这样的方式才能启动程序,为什么呢,因为如果不跳转,那么下面不管是在jz处是否跳转结果都会跳转到下面这个地方直接结束程序.(未安装时候才是这种情况)


区别就是sub401000在找一个注册表项(实际上我在xp和win7下跟踪发现他永远都是找不到的,也就是返回值永远是0,那么他就会跳转到402B13,再执行402410删除自身)


还记得第三章的分析的话有下面截图,下面的几个参数/c del >>null cmd.exe你们都会在402410函数里面找到,也就是说402410将会删除程序自身.



好了现在我们要找找到底需要什么参数才能让程序运行,最后一个参数(我们的目标就是知道这个参数是啥)被传给sub_402510函数作为参数,看来需要跟踪进这个函数才能解开秘密


开头这一段是在看参数的字节数是不是4,这个自己体会一下,或者再ollydbg里面跟踪运行一下就知道他在干嘛,经验丰富的话一般会比较快的意识到他在做什么,没经验也不能理解这段代码,好了现在我们知道参数是四个字符


接着往下走,看关键cmp再联系上下文知道比较的双方是什么,你就会很快明白在做什么(这里的a原本是'61h',被我标记为a了这样比较明了),很明显edx是参数的第一个字节,他在和a比较,那就是说第一个字符是a


接着cmp是eax和1比较,那么eax是啥?联系上文你会发现,eax是参数的第二个字符减去参数的第一个字符的值,也就是说第二个字符是b


继续看这段代码,做了一系列事还有乘法,其实你会发现她其实就是再看第三个字符是不是c,并不复杂


最后一个字符,很可能就是d了,实际上你仔细分析会发现确实如此


好了分析到这里,我们发现程序要启动需要命令 Lab09-01.exe abcd,我们用ollydbg验证一下,可以看到402510函数正确返回1,这里我们可以回答一下第三问,把jnz改成jmp即可不需要特定密码都能通过.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值