当前位置: 首页 > news >正文

某次热身赛re方向wp

base64,只不过换了一个表,没有任何包装,这个总能做了吧

int __fastcall main(int argc, const char **argv, const char **envp) { int flag_len; // [rsp+4h] [rbp-2Ch] char *encoded; // [rsp+8h] [rbp-28h] char flag[24]; // [rsp+10h] [rbp-20h] BYREF unsigned __int64 v7; // [rsp+28h] [rbp-8h] v7 = __readfsqword(0x28u); read(0, flag, 0x15u); flag_len = strlen(flag); encoded = (char *)malloc(4 * flag_len / 3 + 4); if ( encoded ) { base64_custom_encode((const unsigned __int8 *)flag, flag_len, encoded); if ( !strcmp(encoded, "zNoHvOEJwug8z9sH0NQH0NQH0NQU") ) puts("success"); else puts("fail"); free(encoded); return 0; } else { fwrite("malloc failed\n", 1u, 0xEu, stderr); return 1; } }

看到base64_custom_encode函数

void __cdecl base64_custom_encode(const unsigned __int8 *input, int len, char *output) { int v3; // eax int v4; // eax int v5; // eax int i; // [rsp+1Ch] [rbp-Ch] int j; // [rsp+20h] [rbp-8h] unsigned int triple; // [rsp+24h] [rbp-4h] unsigned int triplea; // [rsp+24h] [rbp-4h] unsigned int tripleb; // [rsp+24h] [rbp-4h] i = 0; j = 0; while ( len > i + 2 ) { triple = (input[i + 1] << 8) | (input[i] << 16) | input[i + 2]; output[j] = custom_b64_table[(triple >> 18) & 0x3F]; output[j + 1] = custom_b64_table[(triple >> 12) & 0x3F]; output[j + 2] = custom_b64_table[(triple >> 6) & 0x3F]; v3 = j + 3; j += 4; output[v3] = custom_b64_table[triple & 0x3F]; i += 3; } if ( len == i + 1 ) { triplea = input[i] << 16; output[j] = custom_b64_table[(input[i] >> 2) & 0x3F]; output[j + 1] = custom_b64_table[(triplea >> 12) & 0x3F]; output[j + 2] = 61; v4 = j + 3; j += 4; output[v4] = 61; } else if ( len == i + 2 ) { tripleb = (input[i] << 16) | (input[i + 1] << 8); output[j] = custom_b64_table[(tripleb >> 18) & 0x3F]; output[j + 1] = custom_b64_table[(tripleb >> 12) & 0x3F]; output[j + 2] = custom_b64_table[(tripleb >> 6) & 0x3F]; v5 = j + 3; j += 4; output[v5] = 61; } output[j] = 0; }

再看到custom_b64_table,双击

custom_b64_table db 'XYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVW'

拿到自定义的base64编码表

直接找在线工具http://web.chacuo.net/netbasex

sdpc{rererepwnpwnpwn}

或者手搓python

STANDARD_ALPHABET = "XYZabcdefghijklmnopqrstuvwxyz0123456789+/ABCDEFGHIJKLMNOPQRSTUVW" def encode(data: str, alphabet: str = STANDARD_ALPHABET) -> str: result = [] for i in range(0, len(data), 3): #步长为3 chunk = data[i : i + 3] #三个一组 value = ord(chunk[0]) << 16 if len(chunk) > 1: value |= ord(chunk[1]) << 8 if len(chunk) > 2: value |= ord(chunk[2]) for j in range(4): if j < len(chunk) + 1: result.append(alphabet[(value >> (18 - j * 6)) & 0x3F]) else: result.append("=") return "".join(result) def decode(data: str, alphabet: str = STANDARD_ALPHABET) -> str: padding = data.count("=") data = data.rstrip("=") result = [] for i in range(0, len(data), 4): chunk = data[i : i + 4] value = 0 for j, c in enumerate(chunk): value |= alphabet.index(c) << (18 - j * 6) n = 4 - padding if i >= len(data) - 4 else 4 #判断是否为最后一组 for j in range(n - 1): result.append(chr((value >> (16 - j * 8)) & 0xFF)) return "".join(result) a=decode("zNoHvOEJwug8z9sH0NQH0NQH0NQU") print(a)

如果脚本或代码有看不懂的,可以用以下提示词

把这段代码当作我完全不会编程来解释:逐行说明每行代码做了什么、为什么这样做,以及整个程序的功能。用最通俗的语言,不要跳过任何基础概念,包括函数用法。

不会吧,直接给class文件还不会做吗

http://www.jsqmd.com/news/1132044/

相关文章:

  • MySQL库与表的操作
  • 在成都买翡翠,不同段位该去哪家店
  • 3步彻底解决Sublime Text中文乱码:ConvertToUTF8插件终极解决方案
  • 9大网盘直链解析工具:开源解决方案如何提升工作效率300%
  • TD3 vs SAC vs DDPG:3 种连续控制算法在 5 个 MuJoCo 任务上的性能对比
  • openEuler 22.03 LTS 配置华为云镜像源:3步完成并验证可用性
  • GPT-4o 翻译质量评测:8篇大学英语课文英译中,BLEU得分与人工评估对比
  • C盘红了不敢乱删?这个开源工具让AI帮你判断哪些文件夹能删
  • MacBook Pro 2016-2018款屏幕排线设计缺陷深度解析:从Flexgate到服务计划
  • NVIDIA 驱动 551.86 与 CUDA 12.4 版本匹配指南:Windows 深度学习环境搭建避坑 3 要点
  • VS2019中添加md文件查看功能
  • 飞轮自驱:机器人如何以世界为食,实现永不停歇的自我进化?
  • C# GeneratedRegex:面向对象语言的“底层性能突围
  • 从零实现一个网络防火墙:包过滤与状态检测
  • DeepSeek-Translator v2 API 实战:3步调用实现《大学英语》课文批量英译中
  • 2026年想找专业靠谱的外墙保温装饰一体板供应商 看这几点就够了
  • 《Python + Streamlit + DeepSeek API 实现一个本地文档问答助手》
  • STFT 与 DWT 实战对比:Python 3.11 下 5 种窗函数对非平稳信号时频分析效果
  • SQL Server 自定义函数进阶:WITH SCHEMABINDING 与参数默认值实战解析
  • 达朗贝尔公式与特征线法:一维波动方程依赖区间与决定区域图解
  • MySQL 8.0 自定义函数实战:3种类型对比与5个业务场景代码实例
  • Dify低代码AI开发平台:从零部署到工作流实战全指南
  • 我为什么放弃Scrapy转投Playwright?爬虫框架选择的真相
  • CUDA 12.4 + cuDNN 8.9 环境配置:Windows/Linux 双系统 5 步验证法
  • Codex Windows Sandbox 启动失败:CreateProcessAsUserW failed: 2 的原因与修复
  • MatAnyone:无需绿幕的AI视频抠像神器,轻松实现专业级视频背景分离
  • Win11Debloat:Windows系统清理优化的终极免费解决方案
  • MySQL 8.0 CTE vs 子查询:5个复杂场景下的性能与可读性对比
  • 本地AI绘图新范式:Codex与Cowart插件实现指哪改哪交互式创作
  • 《数据库系统概论》第6版 vs 第5版:3大核心内容更新与SQL Server/Oracle 23版适配