吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 默小白

[转贴] 【转帖】一道有意思的魔改base64逆向

  [复制链接]
血色天空 发表于 2019-3-15 12:54
谢谢楼主的分享,学习了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fuckbin 发表于 2019-4-28 21:06
本帖最后由 fuckbin 于 2019-4-28 21:12 编辑

编码表就在 sub_401BED这个函数里
__int64 __fastcall sub_401BED(__int64 a1)
{
  int v2; // [rsp+10h] [rbp-60h]
  int v3; // [rsp+14h] [rbp-5Ch]
  int v4; // [rsp+18h] [rbp-58h]
  int v5; // [rsp+1Ch] [rbp-54h]
  int v6; // [rsp+20h] [rbp-50h]
  int v7; // [rsp+24h] [rbp-4Ch]
  int v8; // [rsp+28h] [rbp-48h]
  int v9; // [rsp+2Ch] [rbp-44h]
  int v10; // [rsp+30h] [rbp-40h]
  int v11; // [rsp+34h] [rbp-3Ch]
  int v12; // [rsp+38h] [rbp-38h]
  int v13; // [rsp+3Ch] [rbp-34h]
  __int64 v14; // [rsp+40h] [rbp-30h]
  int v15; // [rsp+4Ch] [rbp-24h]
  int v16; // [rsp+50h] [rbp-20h]
  int v17; // [rsp+54h] [rbp-1Ch]
  const char *v18; // [rsp+58h] [rbp-18h]
  int i; // [rsp+64h] [rbp-Ch]
  int v20; // [rsp+68h] [rbp-8h]
  int v21; // [rsp+6Ch] [rbp-4h]

  v18 = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbn/+m1234567890";
  v17 = sub_4010C0(a1);
  sub_408DF0((unsigned __int64)"%d\n");
  v16 = v17 % 3;
  v15 = v17 / 3;
  v21 = 4 * (v17 / 3) + 1;
  if ( v17 % 3 > 0 )
    v21 += 4;
  v14 = sub_4157A0(v21, (unsigned int)v17);
  sub_401088(v14, 0LL, v21);
  *(_BYTE *)(v21 + v14) = 0;
  v13 = 0;
  v2 = 0;
  v20 = 0;
  v12 = 16515072;
  v11 = 258048;
  v10 = 4032;
  v9 = 63;
  for ( i = 0; i < v15; ++i )
  {
    v8 = 3 * i;
    sub_401038(&v2, 3 * i + a1, 3LL);
    v20 = v2 & 0xFF00 | (v2 << 16) & 0xFF0000 | (v2 >> 16);
    v7 = (v12 & v20) >> 18;
    v6 = (v11 & v20) >> 12;
    v5 = (v10 & v20) >> 6;
    v13 = v9 & v20;
    *(_BYTE *)(4 * i + v14) = v18[v7];
    *(_BYTE *)(4 * i + 1LL + v14) = v18[v6];
    *(_BYTE *)(4 * i + 2LL + v14) = v18[v5];
    *(_BYTE *)(4 * i + 3LL + v14) = v18[v13];
  }
  if ( v16 > 0 )
  {
    v4 = 3 * v15;
    v3 = 4 * v15;
    sub_401038(&v2, a1 + 3 * v15, v16);
    if ( v16 == 1 )
    {
      v6 = v9 & v20;
      v7 = v9 & (v20 >> 6);
      *(_BYTE *)(v3 + v14) = v18[v9 & (v20 >> 6)];
      *(_BYTE *)(v3 + 1LL + v14) = v18[v6];
      *(_BYTE *)(v3 + 2LL + v14) = 61;
      *(_BYTE *)(v3 + 3LL + v14) = 61;
    }
    if ( v16 == 2 )
    {
      v20 = v2 >> 8;
      v5 = v9 & (v2 >> 8);
      v6 = v9 & (v2 >> 14);
      v7 = v9 & (v2 >> 20);
      *(_BYTE *)(v3 + v14) = v18[v9 & (v2 >> 20)];
      *(_BYTE *)(v3 + 1LL + v14) = v18[v6];
      *(_BYTE *)(v3 + 2LL + v14) = v18[v5];
      *(_BYTE *)(v3 + 3LL + v14) = 61;
    }
  }
  return v14;
}
再贴一记大佬的代码,学习一下
import base64a = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbn/+m1234567890"b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"base_fix = "ZXFWtmKgDZCyrmC5B+CiVfsyXUCQVfsyZRFzDU4yX2YCD/F5Ih8="table = ''.maketrans(a, b)print(base64.b64decode(base_fix.translate(table)))

_默默_ 发表于 2019-4-29 14:47
ggggfnhv 发表于 2019-4-29 23:21
ggggfnhv 发表于 2019-4-29 23:22
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-6-21 05:26

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表