[FlareOn4]IgniteMe
例行查壳:
无壳32位,拖入IDA:
跟进,然后交叉引用列表:
然后F5查看伪代码:
在伪代码中,可以发现两个关键函数sub_4010F0
和sub_401050
,先查看sub_4010F0
:
这段代码的大概意思就是,先读入字符串,然后再计算出Buffer字符串的长度,最后再把不等于10切不等于13不为0的,存入byte_403078[i]
中。下面在查看sub_401050
:
这段意思就是说,先将byte_403078[i]
的字符串长度给V0,然后通过for循环进行倒序,同时让其前一位与后一位进行异或,在通过一个for循环进行对比,sub_401000函数是返回一个固定值,动调得到v4=4。总体逻辑就是将输入倒序异或,然后进行比对,然后脚本:
#include <stdio.h>
int main()
{
int i;
char v4=4;
char a[] =