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

25.8.29_NSSCTF——[BJDCTF 2020]Easy_WP

NSSCTF——[BJDCTF 2020]Easy_WP

一、做题过程

这道题考的是动调,我之前没怎么做过动调的题,所以借鉴了很多大佬的文章

首先是看了ida调试技巧-通过修改eip寄存器的值强制运行程序中存在但未被调用的函数_ida运行程序-CSDN博客,了解了如何在ida运行时通过修改EIP(可以理解为指针)来运行原来不能运行的函数

看题,32位,无壳:

image-20250829224724570

打开后直奔main函数,发现啥也没有:

image-20250829224811304

在左侧的函数窗口可以看到一个_ques函数:

int ques()
{int v0; // edxint result; // eax_DWORD buf[50]; // [esp+20h] [ebp-128h] BYREFint n2147122737; // [esp+E8h] [ebp-60h]_DWORD v4[10]; // [esp+ECh] [ebp-5Ch]int j; // [esp+114h] [ebp-34h]__int64 v6; // [esp+118h] [ebp-30h]int v7; // [esp+124h] [ebp-24h]int v8; // [esp+128h] [ebp-20h]int i; // [esp+12Ch] [ebp-1Ch]n2147122737 = 2147122737;v4[0] = 140540;v4[1] = -2008399303;v4[2] = 141956;v4[3] = 139457077;v4[4] = 262023;v4[5] = -2008923597;v4[6] = 143749;v4[7] = 2118271985;v4[8] = 143868;for ( i = 0; i <= 4; ++i ){memset(buf, 0, sizeof(buf));v8 = 0;v7 = 0;v0 = v4[2 * i];LODWORD(v6) = v4[2 * i - 1];HIDWORD(v6) = v0;while ( v6 > 0 ){buf[v8++] = v6 % 2;v6 /= 2LL;}for ( j = 50; j >= 0; --j ){if ( buf[j] ){if ( buf[j] == 1 ){putchar(42);++v7;}}else{putchar(32);++v7;}if ( !(v7 % 5) )putchar(32);}result = putchar(10);}return result;
}

这里putchar了很多字符,flag多半就在这里

现在开始动调改EIP,首先找到main函数的结尾,也就是return那里的地址,下断点:

image-20250829225004497

然后左上角Debugger->switch debugger->local windows debbugger,然后F9开始动调

注意这个cmd界面需要回车一下

image-20250829225133303

然后右上角找到EIP并双击,修改为_ques函数的开始地址0x00401520

image-20250829225221582

image-20250829225243038

这样我们就进入了ques函数,这里继续运行程序就可以在cmd界面找到打印出来的字符了

这里最开始我是一直F7,发现需要按好久,于是我搜了一下,看了这篇文章IDA 快捷键基本使用(常用+动调快捷键)_ida快捷键-CSDN博客,这里直接ctrl+F7自动运行就可以了,得到flag:

image-20250829225602398

Get_flag:NSSCTF{HACKIT4FUN}

二、需要注意的

动运行就可以了,得到flag:

[外链图片转存中…(img-NGXfjr29-1756479480948)]

Get_flag:NSSCTF{HACKIT4FUN}

二、需要注意的

  • ida中通过动调修改EIP运行没有运行的函数
http://www.xdnf.cn/news/1393777.html

相关文章:

  • sqlachemy
  • ClickHouse 客户端
  • 精益管理学会|工厂建设如何做好布局?
  • Express框架介绍与基础入门
  • BugKu Web渗透之file_get_contents
  • 什么是 MySQL的主从同步机制?它是如何实现的?
  • Spring Boot 使用 RestTemplate 调用 HTTPS 接口时报错:PKIX path building failed 解决方案
  • GY-BMP280压强传感器完整工程stm32控制
  • Woody:开源Java应用性能诊断分析工具
  • “游戏手柄”线性霍尔传感器IC替代方案:赛卓SC470X
  • 深度对比:BQ79758-Q1 vs BQ79718-Q1,哪款汽车级电池监测器更适合你的BMS设计?
  • LDA(隐狄利克雷分配):主题模型的经典之作
  • [机器学习]基于K-means聚类算法的鸢尾花数据及分类
  • 动态环境下的人员感知具身导航!HA-VLN:具备动态多人互动的视觉语言导航基准与排行榜
  • gpu与cpu各厂商的优劣
  • 吱吱企业通讯软件可私有化部署,构建安全可控的通讯办公平台
  • [TG开发]与Reids集成
  • 深度拆解 OpenHarmony 位置服务子系统:从 GNSS 到分布式协同定位的全链路实战
  • LeetCode - 1. 两数之和
  • 华硕主板 BIOS 提示——GPT header corruption has been detected
  • 【树论】树上启发式合并
  • RV1126的OSD模块讲解
  • 单节锂电池,升压至12V/2.5A的芯片选型指南(附FP5207X 与 FP7208参数表)
  • Zabbix-获取客户端的SNMP数据
  • CMake⼯程指南-2
  • Linux系统——EXT2 文件系统
  • 记录:HSD部署(未完成)
  • 基于 Vue + Interact.js 实现可拖拽缩放柜子设计器
  • CosyVoice win10启用记
  • 《Shell 大道:筑基篇(下)—— 流控筑根基,数据任驱驰》