zoukankan      html  css  js  c++  java
  • 2020/5/30 BUU_[FlareOn4]IgniteMe

    查壳:

    没壳,跑一下看看:

    经典输入处理判断,扔进IDA看一看:

    框架比较简单,但是简单的框架内容可不一定简单。

    一些API函数,念着英文就知道什么意思了。看一下读取数据的函数:

    中规中矩的,把读入的' '和' '过滤一下。

    看一下处理和判断的函数:

    大体逻辑是这样的:

    v0是长度,v4是一个给定的数值。循环处理flag,将其倒序与v4亦或的结果保存,替换v4内容,继续下一位。

    由于结果已经给出了,我们要做的就是逆向写一遍这个算法。但是我们缺少v4的内容,不知道v4就不知道其他位置的flag。

    关于v4的这个函数sub_401000,我们不能立马得到结果:

    这是一个没见过的函数,具体处理也不是很懂。

    这里其实可以用od看一下运算结果,但是我用不熟od,好歹拖进去看一下:

    这里调用了401000函数,然后把al存了起来。

    手动计算401000:

    Eax和edx存入0x80070057。Ax异或,eax左移4,ax右移1。

    这里注意eax是32位而ax是16位,ax取0x0057,rol循环左移不舍弃,shr右移舍弃高位0补足。得到的结果是0x0x700004

    然后al是8位,也就是04,所以v4 = 4;(老实说我并不明白这里为什么v4就是al的值)

    逆向算法:

    结果:

    R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com

  • 相关阅读:
    如何有效的遍历django的QuerySet
    python进程池剖析(三)
    python进程池剖析(二)
    python进程池剖析(一)
    条件变量signal与unlock的顺序
    智能指针与句柄类(四)
    解析正则 /(d)(?=(d{3})+.)/g
    原生JS实现增加删除class
    RN 热更新
    Windows下搭建IOS开发环境
  • 原文地址:https://www.cnblogs.com/DorinXL/p/12924910.html
Copyright © 2011-2022 走看看