尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
x32dbg/x64dbg逆向之反汇编do-while分析
x32dbg/x64dbg逆向之反汇编do-while分析1反汇编do-while分析do-while语句在开发中同样十分常见它和while区别主要先执行循环体再判断条件是否继续循环的场景。相比whiledo-while至少会先执行一次循环体因此在一些特定逻辑处理中非常实用。编译后映射到汇编代码里具体是什么样子咱们也通过x32dbg/x64dbg一步步调试也看下哦2C语言案例代码单个do-while咱们在学习逆向分析的同时同步梳理C和C基础知识点一正一反正向开发逆向分析为后续深耕底层技术打好基础哦。#define _CRT_SECURE_NO_WARNINGS#include stdio.hint main(void){int n;int i 1;int sum 0;printf(Please input an number: );scanf(%d, n);do{sum sum i;i i 1;} while (i n);printf(Sum from 1 to %d %d\n, n, sum);return 0;}4C语言案例代码多个do-while咱们在学习逆向分析的同时同步梳理C和C基础知识点一正一反正向开发逆向分析为后续深耕底层技术打好基础哦。#include stdio.hint main(){int x 1;// Single do-whiledo{printf(%d , x);x;} while (x 5);printf(\n);printf(\n);x 0;// First do-while layerdo{int y 1;printf(| );// Second do-while layerdo{int z 1;// Third do-while layerdo{printf(* );z;} while (z 3);printf(| );y;} while (y 2);printf(\n);x;} while (x 2);return 0;}5反向分析指针单个do-while之前咱们把单个while和多个while分析外以后再来看会发现底层几乎一样但是一旦嵌套多了咱们会发现不同的地方哦所以咱们以后尽量从最底层入手这样理解任何东西就相当easy哈哈哈x64Debug版本00007FF60D851930 | 40:55 | push rbp | FileName.cpp:500007FF60D851932 | 57 | push rdi |00007FF60D851933 | 48:81EC 48010000 | sub rsp,148 |00007FF60D85193A | 48:8D6C24 20 | lea rbp,qword ptr ss:[rsp20] |00007FF60D85193F | 48:8D7C24 20 | lea rdi,qword ptr ss:[rsp20] |00007FF60D851944 | B9 1A000000 | mov ecx,1A |00007FF60D851949 | B8 CCCCCCCC | mov eax,CCCCCCCC |00007FF60D85194E | F3:AB | rep stosd |00007FF60D851950 | 48:8B05 E9B60000 | mov rax,qword ptr ds:[__security_cooki | rax:__enc$textbss$end5A00007FF60D851957 | 48:33C5 | xor rax,rbp | rax:__enc$textbss$end5A00007FF60D85195A | 48:8985 18010000 | mov qword ptr ss:[rbp118],rax | rax:__enc$textbss$end5A00007FF60D851961 | 48:8D0D A0060100 | lea rcx,qword ptr ds:[__14F49BB1_FileN | FileName.cpp:1573248000007FF60D851968 | E8 3FFAFFFF | call project1.7FF60D8513AC |00007FF60D85196D | 90 | nop | 上面全是debug特有的就不多少了00007FF60D85196E | C745 24 01000000 | mov dword ptr ss:[rbp24],1 | FileName.cpp:7开始赋值变量int i 1;00007FF60D851975 | C745 44 00000000 | mov dword ptr ss:[rbp44],0 | FileName.cpp:8int sum 0;00007FF60D85197C | 48:8D0D A5930000 | lea rcx,qword ptr ds:[Please input an | FileName.cpp:10, 00007FF60D85AD28:Please input an number: print参数00007FF60D851983 | E8 D0F8FFFF | call project1.7FF60D851258 | printf00007FF60D851988 | 90 | nop |00007FF60D851989 | 48:8D55 04 | lea rdx,qword ptr ss:[rbp4] | FileName.cpp:11, rdx:__enc$textbss$end5Aint n作为scanf存储数字的变量地址第二个参数rdx00007FF60D85198D | 48:8D0D B4930000 | lea rcx,qword ptr ds:[%d...] | 00007FF60D85AD48:%d第一个参数00007FF60D851994 | E8 D3F8FFFF | call project1.7FF60D85126C | scanf00007FF60D851999 | 90 | nop |00007FF60D85199A | 8B45 24 | mov eax,dword ptr ss:[rbp24] | FileName.cpp:15获取局部变量i00007FF60D85199D | 8B4D 44 | mov ecx,dword ptr ss:[rbp44] | 获取局部变量sum00007FF60D8519A0 | 03C8 | add ecx,eax | sum sum i;00007FF60D8519A2 | 8BC1 | mov eax,ecx |00007FF60D8519A4 | 8945 44 | mov dword ptr ss:[rbp44],eax | 把结果赋值给sum00007FF60D8519A7 | 8B45 24 | mov eax,dword ptr ss:[rbp24] | FileName.cpp:16同理获取局部变量i00007FF60D8519AA | FFC0 | inc eax | i i 1;00007FF60D8519AC | 8945 24 | mov dword ptr ss:[rbp24],eax | 把结果赋值给i00007FF60D8519AF | 8B45 04 | mov eax,dword ptr ss:[rbp4] | FileName.cpp:17获取局部变量i进行比较00007FF60D8519B2 | 3945 24 | cmp dword ptr ss:[rbp24],eax | while (i n);00007FF60D8519B5 | 7E E3 | jle project1.7FF60D85199A | 如果小于等于继续执行循环语句内容00007FF60D8519B7 | 44:8B45 44 | mov r8d,dword ptr ss:[rbp44] | FileName.cpp:19获取sum00007FF60D8519BB | 8B55 04 | mov edx,dword ptr ss:[rbp4] | 获取n00007FF60D8519BE | 48:8D0D 8B930000 | lea rcx,qword ptr ds:[Sum from 1 to % | 00007FF60D85AD50:Sum from 1 to %d %d\n00007FF60D8519C5 | E8 8EF8FFFF | call project1.7FF60D851258 | printf00007FF60D8519CA | 90 | nop |00007FF60D8519CB | 33C0 | xor eax,eax | FileName.cpp:2000007FF60D8519CD | 8BF8 | mov edi,eax | FileName.cpp:2100007FF60D8519CF | 48:8D4D E0 | lea rcx,qword ptr ss:[rbp-20] |00007FF60D8519D3 | 48:8D15 26930000 | lea rdx,qword ptr ds:[7FF60D85AD00] | rdx:__enc$textbss$end5A00007FF60D8519DA | E8 8AF6FFFF | call project1.7FF60D851069 |00007FF60D8519DF | 8BC7 | mov eax,edi |00007FF60D8519E1 | 48:8B8D 18010000 | mov rcx,qword ptr ss:[rbp118] |
RELATED

相关推荐

绝版认知好书合集

绝版认知好书合集

近400本关于开悟、人性、权谋、创业、两性等领域都有 适合提升自我认知 掌握社会底层规律 适合珍藏链接: https://pan.baidu.com/s/1I3Wckwkocsnf0Ox0XDnZqw?pwd75wf

📅 2026/9/22 17:07:42
校园IP广播系统核心技术解析与实践

校园IP广播系统核心技术解析与实践

1. 校园IP广播系统概述校园IP广播系统是基于TCP/IP协议的数字音频传输解决方案,它彻底改变了传统广播系统依赖模拟信号和专用线路的局限性。我在参与某重点中学广播系统升级项目时,实测发现采用IP广播后,布线成本降低60%以上,而功…

📅 2026/10/4 14:31:28
编程语言核心符号全解析:从分号、花括号到箭头运算符的跨语言对比与实践

编程语言核心符号全解析:从分号、花括号到箭头运算符的跨语言对比与实践

1. 项目概述与价值干了这么多年开发,从Web前端到后端再到系统底层,用过的编程语言少说也有七八种。每次切换语言或者看别人的老代码,最头疼的不是复杂的算法,反而是那些不起眼的符号——分号、花括号、箭头、双冒号,它…

📅 2026/9/24 4:43:34
MORE NEWS

更多资讯

📰

CAP-LLM: Context-Augmented Personalized Large Language Models for News Headline Generation

文章主要内容和创新点 主要内容 本文提出了一种名为CAP-LLM(Context-Augmented Personalized LLM) 的新型框架,旨在解决个性化新闻标题生成中“捕捉复杂用户兴趣”与“保证事实一致性”的核心挑战。该框架基于预训练大语言模型(如Llama-2、Mistral),通过三个核心组件实…

📰

npm install 安装慢?把 registry 改到 TaoToken 统一通道的配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

BridgeScope: A Universal Toolkit for Bridging Large Language Models and Databases

文章主要内容和创新点 主要内容 本文介绍了BridgeScope,一个连接大型语言模型(LLMs)与数据库的通用工具包,旨在解决当前LLM与数据库交互中存在的可用性低、安全性弱、权限管理混乱及数据传输效率低等问题。 核心功能:BridgeScope通过三大核心功能支持各类数据相关任务,…

📰

眼动追踪中的动态AOI分析:从静态画框到兴趣区跟随的完整实战指南

眼动数据分析里有一个很隐蔽的门槛:静态图片上的AOI分析,随便找个教程就能上手,画个矩形框,统计注视时长,完事。可一旦刺激物动起来——视频广告、驾驶模拟界面、人机交互操作过程,很多人立刻卡壳。为什么&…

📰

Enhancing Serendipity Recommendation System by Constructing Dynamic User Knowledge Graphs with La...

文章主要内容和创新点 主要内容 本文针对工业推荐系统中因“系统推荐→用户反馈→系统再推荐”的反馈循环导致的过滤气泡效应(推荐结果趋同、用户满意度下降),提出了一种利用大型语言模型(LLMs)构建动态用户知识图谱以增强推荐系统“意外发现性”(serendipity)的方法。…

📰

Large Language Models Assisting Ontology Evaluation

文章主要内容总结 研究背景:本体评估中的能力问题(CQ)验证是重要的功能需求验证方式,但传统方法耗时、费力且易出错。近年来大语言模型(LLMs)在本体工程中展现潜力,但在通过CQ验证进行功能评估(尤其是人机协同场景)的研究仍属空白。 核心贡献: 提出OE-Assist框架,通…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬