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;
}

运行结果


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值