zoukankan      html  css  js  c++  java
  • 2020 XCTF 天津垓

    总结:

    ① 没有仔细观察 IDA 反编译的结果,导致在爆破第一个字符串时浪费了很多时间

    ② 没有第一时间想到 Smc ,没有观察导入函数以及数据之间的联系,匆忙进入动调,导致在调试时陷入繁复的代码中,没有厘清思路。

    程序有一个简单的反调试窗口名称查询,将 GetWindowTextA 的窗口句柄参数置 0 即可。

    查字符串,找到程序流程,进入第一个函数 1004011F6()

    注意下面的循环,v1 实际只有 13 个,但循环给出了 18 个,反编译错了,查看源代码并将 v1 的数组长度修改为 18。

    爆破解出字符串。

    输入字符串后,程序继续运行,出现了新的字符串,而该字符串在程序载入时并未能搜索到,因此可能为自解码运行,查看导入函数,确实发现了相应的函数。

    X64 dbg 中定位到该函数地址,下断点。观察可得函数的解码起始地址,在解码完成后,下断点并 dump ,放入 IDA。

    爆破出字符串。

  • 相关阅读:
    laravel中使用ElasticSearch详情
    linux 使用大全
    常见监控软件介绍及原理介绍
    DNS与域名解析
    linux基础入门(基础命令+vi+shell)
    php-fpm与fastcgi、php-cgi之间的关系及源码解析
    web系统整体性能测试
    typescript入门
    webpack
    React
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/14447270.html
Copyright © 2011-2022 走看看