每日总结-第二十六天-复读机

碎碎念

前天结束了De1CTF,再次被自己菜到说不出话来==,今天满血复活,继续努力吧。

小记录 - pizza复读机

掌握汇编语言(x86, arm, mips, …)与一定的软件开发经验
代码内的: 算法, 数据结构, 设计模式… 代码外的: 可执行文件格式, 编译原理, 操作系统… 逆向开发套件: capstone, keystone, unicorn, pefile, LIEF…
CTF中的逆向题目有一下几个常见考点

  • 常见算法与数据结构

    • 各种排序算法, 树, 图等数据结构
    • 识别加密算法与哈希算法代码特征,识别算法中魔改的部分
  • 软件保护技术

    • 代码混淆, 代码虚拟化, 自修改代码, 反调试等
    • 软件加密壳是软件保护技术的集中应用
    • 大部分技术都有开源的实现, 通过学习实现, 掌握对抗技巧
  • 游戏博弈, 接口协议

    • 将游戏或玩具的逻辑用代码实现, 逆向首先要找到程序的原型, 将程序数据转换为游戏信息, 再依照规则解决游戏.
    • 以正常调用程序, 达到某种状态或调用部分功能为目标
    • 迷宫, 魔方, 扫雷, 井字棋, 传奇霸业. FTP下载文件, 用户登录,GDB调试协议
  • 逆向与猜测结合, 通过逆向缩小猜测范围, 猜测为逆向指出方向,逆向再验证猜测的思路.

  • 结合代码上下文与整体程序功能, 关注程序中给出的文字提示信息.

  • 实际比赛中逆向题目多数是为出题而出题, 有目的性强, 功能结构单一, 无关代码少等特点.

  • 遇到程序代码量极大时, 可以先判断是否引用了较多的开源代码, 而主逻辑相对简单

逆向本身就是体力活, 需要长时间的努力.
及时总结当前已分析的结果, 指出目前遇到的困难, 寻找下一步的努力方向, 形成循环.

  • 找不到数据流与控制流或跟丢, 分析线索中断
  • 遇到软件保护技术, 代码量工作量大
  • 未知的算法, 数据结构
  • 未知的文件格式, 指令集, 无从下手

all in one

近期就是学这个链接里面的这些了==我好菜我好菜我好菜
https://github.com/firmianay/CTF-All-In-One/blob/master/doc/0_preface.md

你可能感兴趣的:(每日总结-第二十六天-复读机)