zoukankan      html  css  js  c++  java
  • 20145120《计算机病毒》高级静态分析

    20145120《计算机病毒》高级静态分析

    1

    PSLIST导出函数做了什么?

    从EXPORT窗口双击查看PSLIST函数


    发现其调用如下图函数,上面一个判断当前的平台(与WIN32比较),操作系统版本(与VISTA比较)


    调用API(CreateToolhelp32Snapshot)获取进程列表,配合其他API达到发送进程列表到远端或寻找某个特定进程的目的

    2

    使用图模式绘制出sub_10004E79的交叉引用图。

    当进入该函数时,哪个API可能被调用?

    上图中粉色的API都有可能被调用,例如获取系统语言GetSystemDefaultLangID,输出sprintf,字符串长度strlen等等

    仅仅基于这些API函数,可以如何重命名该函数?

    显然该函数用于获取系统语言,重命名如图

    3

    DLLMAIN直接调用了多少个WINDOWS API?

    类似上题,用图模式绘制以下DLLMAIN,recursion depth设为2,数下粉色的,有33个(看得有点眼花不知道数错没有)

    DLLMAIN调用图太复杂不放了

    多少个深度为2时被调用?

    2级调用的有16个

    4

    尝试使用MSDN页面重点命名符号常量,使得0x10001701处对socket调用的参数更有意义

    原来的参数是2(AF_INET表示IPv4),1(SOCK_STREAM表示面向TCP的Socket),6(IPPORTO_TCP表示TCP协议),还好《网络安全编程基础》学过WIN SOCK,不过当时都没有直接用数字都是用宏常量名字的。

    5

    搜索in指令(0xED)的使用。

    search>sequence of byte(或者直接点工具栏下标101的小望远镜也可以)查找ED,记得勾选查找所有


    在众多结果中找到in,双击查看


    该指令与一个魔术字符串VMXh用来进行VMware检测,这在这个恶意代码中被使用了吗?

    在0x100061DC位置的字符串就是要找的,右键点击可以让它从ASCII码转换为字符串VMXh,然后,显然被使用了

    使用对执行in指令函数的交叉引用,能发现进一步检测VMware的证据吗?

    在这段代码的头部可以看到这个函数是sub_1006196,Ctrl+x查看它交叉引用

    第一个里就找到了(红框框起来的)

    参考资料

    IDA Pro可以让恶意程序无所遁形

  • 相关阅读:
    线程的等待与唤醒
    多线程start()与run()的区别
    Thread与Runnable
    关于i++和++i的一些见解
    Mysql优化(转)
    Java 注解
    Java 泛型(转)
    Java 中的CAS
    CAS ABA问题
    Java 线程池分析
  • 原文地址:https://www.cnblogs.com/20145120hxx/p/6891966.html
Copyright © 2011-2022 走看看