恶意代码分析实战 Lab 6-4 习题笔记

Lab 6-4

问题

1.在实验6-3和6-4的main函数中的调用之间的关系的区别是什么?

解答: 和以前一样,先按照书中的步骤走一遍

先是静态分析

静态分析

导入的函数都和Lab 6-3一样

字符串的话

也基本差不多,都和上一个程序一样,除了这点之外

这点

然后这里会出现一个格式输出符%d

这是上一个程序里没有的

程序

然后会发现这个代码的结构和上三个都不一样

图片

我们从开始,这里和原来一样,调用sub_401000sub_401000返回的是此时网络连接的状态,如果是不可用的状态,就返回0,反之返回1

然后下面比较返回值和0的关系,如果返回值不等于0,则ZF=0,然后jnz跳转

跳转之后就继续执行其他的函数,反之如果返回值等于0,那程序就跳转结束了,并且返回0

如果连接可用的话,继续查看这个代码就

图片

这里程序将一个值0赋给了var_C

然后无条件跳转到这里

无

var_c5A0h比较,再根据比较结果跳转,jge是有符号大于跳转,现在var_C0,所以这个跳转是不会实现的,那我们继续看,他不跳转之后会执行什么

不跳转

函数不跳转之后,来到了这里,把var_C压入了栈中,然后调用了sub_401040这个函数

这个函数是调用InternetOpenA来初始话一个网路连接,然后调用InternetReadFile来从网络获取文件,最后比较获得文件的头四个数是不是<!--

最后返回第五个字符

InternetOpenA

我们可以将这个函数重命名为GetCommand之类的

最后获得返回值之后,test一下是不是为0,如果是,则跳转结束,如果不是,继续执行

继续

var_8是程序从网页中获得的命令,压栈var_8和一个字符串,之后调用sub_401285,这个函数打开我们可以发现就是printf函数,之后又压栈了一些参数,再调用sub_401150,这个函数我们分析过,其实就是那个switch语句,如果参数等于a,b,c,d,e之类的,会执行不同的操作,我们可以将这个函数命名为CommandSwitch之类的

然后函数睡眠60s,再跳到loc_401251的位置执行

函数

这个代码是将刚刚被push进去栈中的数据赋值给eax,然后将eax增加1,然后又把这个值返回栈中,有点像C语言的i+=1

然后便是函数又跳回到这个程序开始的地方

程序

不过这时候var_C已经变成1

关系就是这么个关系


2.什么新的代码结构已经被添加到main中

解答: 新的代码结构我们刚刚已经说了其实,如果对C语言很熟的同学马上就会看出来,这其实就是个for循环

图片


3.这个实验的解析HTML的函数和前面实验中的那些有什么区别

解答: 书中的说法是

会调用sprintf函数来对输出进行格式化

也就是会改变User-Agent的值

图片

arg_0是函数最后push进栈的参数

15

也就是var_C的值,var_C的值代表了函数已经循环的次数,这里并不是函数已经运行的分钟数(书中解答有点潦误)


4.这个程序会运行多久?(假设它已经连接到互联网。)

解答: 因为这个for循环是这样的

for(int var_C = 0; var_C <= 5A0h; i++)

这里要注意i++++i的区别,i++是在函数的最后执行完了之后才+1,而++i是立马就把1加上了,IDA中显示+1是在最后,所以我们这里用i++

5A0h翻译过来就是1440d,然后这样算过了,这个函数会执行1440次,一次会休眠60s也就是一分钟,除去运行程序本身的时间,这个函数会运行1440m,也就是24h,也就是1day


5.在这个恶意代码中有什么新的基于网络的迹象吗?

解答: 新的基于网络的迹象就是这个程序运行次数会写在User-Agent里面,我们可以通过这个来确定这个程序已经运行了多少分钟多少次了


6.这个恶意代码的目的是什么?

解答: 和上一题一样,只是加入了for循环

本文完

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值