美文网首页
windows逆向4

windows逆向4

作者: MagicalGuy | 来源:发表于2018-10-10 00:48 被阅读0次

    C++数据结构-map
    C++-MFC 程序
    C++-MFC 程序分析-00
    010Editor 分析
    WinRAR 去广告分析

    1. 虚函数的调用在反汇编中有什么形式?
      ① 类对象.虚函数,反汇编和调用普通成员函数一样,call offset
      ② 类对象->虚函数,反汇编中使用的是寄存器调用,访问了虚函数表中的函数

    2. 数据结构逆向的重点在于分析什么?
      重点分析数据,数据的引用、数据的变化,从而推理数据的结构

    C++数据结构-map
    Map 的特点就是查询速度快
    stl 库的中 Map 是平衡二叉树的一种,叫做红黑树

    C++-MFC 程序
    MFC 程序,可能藏匿初始化代码或是反调试代码的地方:
    ① 全局对象的构造函数
    C 运行的 inittem 函数

    image.png

    ② theApp 对象中的 InitInstance


    image.png

    ③ 对话框对象中的 OnInitDialog


    image.png image.png

    return pDlg->OnInitDialog();
    00D3786E 8B 4D FC mov ecx,dword ptr [ebp-4]
    00D37871 8B 11 mov edx,dword ptr [ecx]
    00D37873 8B F4 mov esi,esp
    00D37875 8B 82 80 01 00 00 mov eax,dword ptr [edx+180h]
    00D3787B 89 45 F8 mov dword ptr [ebp-8],eax
    00D3787E 8B 4D F8 mov ecx,dword ptr [ebp-8]
    00D37881 E8 72 2C FB FF call @_guard_check_icall@4 (0CEA4F8h)
    00D37886 8B 4D FC mov ecx,dword ptr [ebp-4]
    00D37889 FF 55 F8 call dword ptr [ebp-8]

    ④ 按钮响应事件

    image.png

    Debug 版,静态编译
    (pTarget->*mmf.pfnCmd_v_v)();
    00D36821 8B F4 mov esi,esp
    00D36823 8B 4D F8 mov ecx,dword ptr [mmf]
    00D36826 89 4D B8 mov dword ptr [ebp-48h],ecx
    00D36829 8B 4D B8 mov ecx,dword ptr [ebp-48h]
    00D3682C E8 C7 3C FB FF call @_guard_check_icall@4 (0CEA4F8h)
    00D36831 8B 4D 08 mov ecx,dword ptr [pTarget]
    00D36834 FF 55 B8 call dword ptr [ebp-48h]

    Release 版静态编译
    (pTarget->*mmf.pfnCmd_v_v)();
    010F7491 8B 4D 14 mov ecx,dword ptr [ebp+14h]
    010F7494 E8 D9 0D 13 00 call 01228272
    010F7499 8B CE mov ecx,esi
    010F749B FF 55 14 call dword ptr [ebp+14h]

    VS2013 Debug 静态编译
    CALL DWORD PTR SS:[EBP-0x8]
    VS2013 Release 版静态编译
    CALL DWORD PTR SS:[EBP+0x14]
    C++-MFC 程序分析-00
    点亮按钮


    image.png

    分析:
    ① 下 API 断点,EnableWindow
    ② 字符串”开启 MFC 之门”
    ③ 激活按钮工具
    ④ 根据资源 ID,查找窗口句柄,再使用 API EnableWindow 点亮
    查找和资源 ID 有关的代码

    image.png

    在每个代码上设置断点


    image.png

    ⑤ 使用资源工具修改资源


    image.png

    010Editor 分析

    1. 信息收集(踩点)
      找到注册对话框,测试输入信息
      菜单-Tools-Register
    image.png

    测试有弹窗信息,可以从两个方向入手:
    ① API 下断, 和窗口、对话框有关的 api
    ② 搜索弹窗的字符串
    安装目录的扫描:


    image.png
    1. 逆向分析
      ① 字符串分析

    010 Editor

    Invalid name or password. Please enter your name and password exactly as given when you
    purchased 010 Editor (make sure no quotes are included).


    &OK

    ② API 下断

    image.png image.png

    在多个 API 下断,当输入假的序列号时,单击检测序列号按钮,看是否会断下。
    运气比较好,在 CreateWindowExW 断下,接下来栈回溯分析每一个调用。
    有一个地方,有很多字符串提示,猜测这个地方离关键跳转比较接近。

    1. 破解程序
      ① 找到了关键跳转,只改关键跳转不行。


      image.png

    特征:8B0D????????68894300006A09E8834363FF8B0D????????8BF881FFDB000000
    ② 在关键跳转附近,找到了关键函数

    image.png

    ③ 在关键函数中找到了真正的验证函数,验证函数中有计算序列号的算法


    image.png

    如果想要计算序列号,需要跟踪验证函数,每一条语句,找出序列号计算的逻辑,提取算法。


    image.png

    WinRAR 去广告分析
    CreateWindowEx 下断,找到广告窗口,修改代码,跳过创建窗口 API

    image.png

    相关文章

      网友评论

          本文标题:windows逆向4

          本文链接:https://www.haomeiwen.com/subject/zkneaftx.html