ISCC 2018 4.leftleftrightright 详解

哎 我这个菜虾最近才悟出来这一道题 iscc 的唯一一道windows逆向题 说实话  做出来还是挺开心的 虽然看了大佬的博客吧  其实比较崩溃的是 这个该死的upx 的壳 我还是没有手动脱出来 23333333 说实话 壳不脱也行 只要你使用OD很强  菜虾不行 只能去尽力的去脱壳 然后在论坛看见了有人说 有脱壳软件 然后抱着试一试的去拖了一下 发现 欸 可以 软件是


是吾爱破解上面的工具包 可以去吾爱破解下载(给我破解打个广告)。

 但是我也没有修复 因为不会 然后 去开心的拖进IDA 然后 发现了 几个特殊的 函数


然后 我们  由上面可以知道 V12是输入长度 不能大于 29 不能小于29 那只能等于29喽?? 然后将进入 401090 (可以看出这个是特殊函数) 进去后发现


这个函数应该就是 转换的函数的   但是吧 我看ida看的脑壳疼   抱着试一试 将还没有脱壳的程序 拖进OD(没修复的拖进OD没用) 然后 成功 找进比较函数 这个自己慢慢找都能找出来吧  然后 就直接去 随便输入一个长度为29的字符串 然后进行比较 然后写出代码 或者自己一步一步的找出 移动规律


上面是我输入的 下面的是运行后得到的    菜鸡不会python 只会c++ 各位大佬凑合着看 。。。

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <queue>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
map<char,int>ppx;
char pp[30]="0123456789abcdefghiklmnopqrst";
char p[30]="edfgcbhia9kl87mn65op43qr21st0";
char xx[30]="s_imsaplw_e_siishtnt{g_ialt}F";
char ans[40];
int main()
{
     for(int i=0;i<29;i++)
     {
         ppx[p[i]]=i;
     }
     for(int i=0;i<29;i++)
     {
         ans[i]=xx[ppx[pp[i]]];
     }

        ans[29]='\0';
        printf("%s\n",ans);
    return 0;
}

运行结果

扫描二维码关注公众号,回复: 1453969 查看本文章


要是有大佬想一起交流 欢迎评论还有 私信 转发请注明出处 (应该没人看吧 23333)

猜你喜欢

转载自blog.csdn.net/qq_41071646/article/details/80560788