main函数两个关键函数:
sub_4111F4(a1, &Str, (int)v9)和sub_4112B7(a1, v9)
sub_4112B7(a1, v9) :
sub_4112B7
得到sub_4111F4的结果应为artqkoehqpkbihv
sub_4111F4里的函数sub_413650无法F5,改sp
先找到对应汇编码
sub_413650
通过ALT + k 修正堆栈,选中text:004138AB处的call
ALT+k
改好后即可F5反汇编,如下:
改了sp后
F5后:
sub_413650内容
sub_413650内容
按逻辑写脚本
#include <stdio.h>
#include <math.h>
int main()
{
char v9[] = "artqkoehqpkbihv";
char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
char v16[64] = {0};
char flag[16] = {0};
int i,tmp,k;
for(i=0;i<64;++i)
{
tmp = base[i] - 'a';
v16[i] = abs(tmp);
}
for(k=0;k<15;++k)
{
flag[k] = v9[k]-v16[k];
while(flag[k]<97)flag[k]+=26;
while(flag[k]>122)flag[k]-=26;
}
puts(flag);
}
flag{umpnineissogood}