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

逆向CTF入门(如何找main)

Hello, world of reverse!

start函数它在执行一些初始化操作,如获取命令行参数、获取环境变量值、初始化全局变量等,一切准备工作完成之后,再调用main函数

快速定位关键函数:

  1. 长驱直入法:当程序功能非常明确时,从程序入口处一步步分析,逐条执行指令,直到找到关键函数

  2. 字符串查找法:可以通过查找字符串来确定main函数的位置

    IDA PRO:Shift F12 + x + F5

    OllyDbg:直接右键查找,双击字符串即可来到main函数位置

  3. API引用法:有些功能需要通过调用 Win32API来实现,认真观察一个程序的功能后, 能够大致推测出它在运行时调用了哪些Win32 API 以HelloWorld程序为例,它在运行时会弹出一 个消息窗口,因此推断出改程序调用了MessageBox函数,通过查找哪里调用了该API即可确定关键函数的位置。

    ida pro:双击交叉引用

    image-20241020203119721

    OllyDbg:直接右键查找,双击方法即可来到main函数位置

  4. API断点法:用OD加载目标程序,鼠标右键菜单—>查找—> 当前模块中的名称,或者用“ctrl + n”快捷键,设置断点,F9运行程序,便会在关键函数处停下来

相关文章:

逆向CTF入门(如何找main)

Hello, world of reverse! start函数它在执行一些初始化操作,如获取命令行参数、获取环境变量值、初始化全局变量等,一切准备工作完成之后,再调用main函数 快速定位关键函数: 长驱直入法:当程序功能非常明确时,从程序…...

c语言归并排序

归并排序思想: 归并排序可以解释为是将放在数组里的一串数字进行拆分,拆分之后再判断大小合并的过程,每次都是从中间位置拆分,例如有七个数,第一次拆分就将它们分成前三个数为一个数组,后四个数为一个数组&…...

碳化硅陶瓷膜的特性

无机膜包括金属膜、陶瓷膜、玻璃膜等等,其中在水处理领域里出镜最多、应用最广的当属陶瓷膜。比起高分子有机膜,陶瓷膜硬度更高、通量更大、寿命更长,然其性能优越,成本也很“高昂”,故其生存空间自然是受到高分子有机…...

机器学习(三)——决策树(附核心思想、重要算法、概念(信息熵、基尼指数、剪枝处理)及Python源码)

目录 关于1 基本流程2 划分属性的选择2.1 方法一:依据信息增益选择2.2 方法二:依据增益率选择2.3 方法三:依据基尼指数选择 3 剪枝处理:防止过拟合3.1 预剪枝3.2 后剪枝 4 连续与缺失值4.1 连续值处理4.2 缺失值处理 5 多变量决策…...

良心无广,这五款电脑软件堪称必备,最后一个比快播都猛

来吧,直接上狠货! 哔哔音乐 这是一个基于哔哩哔哩开发的电脑听歌软件,众所周知!B站其实就是一个巨大的曲库,啥歌各种版本都能在这里找到。 所以如果依托B站开发听歌软件,那就是真的香,而且软件…...

Vue3中实现原生CSS完成圆形按钮点击粒子效果和定点旋转动画

效果&#xff1a; 源码&#xff1a; <script setup> import { ElMessage } from "element-plus"; const isClick () > {ElMessage.success(Clicked); }; </script><template><button click"isClick" class"button">…...

百度网盘 服务器开小差了

有会员&#xff0c;新上传文件到百度网盘&#xff0c;分享链接&#xff0c; 别人打开链接&#xff0c;显示【服务器开小差了&#xff0c;请稍后重试~】&#xff0c;保存不了 试了几个都不行&#xff0c;文件是视频MP4 可行的方法是百度网盘加好友&#xff0c;然后在聊天页面单…...

数据分析师招聘要求

在当今数据驱动的世界中&#xff0c;数据分析师的角色变得愈发重要&#xff0c;他们被赋予从海量数据中提炼洞察的关键任务。数据分析师的招聘要求反映了这个职位多方面的需求&#xff0c;从教育背景到技能&#xff0c;再到软技能和行业特有的知识。本文将详细探讨这些要求&…...

【C语言】实战-力扣题库:回文链表

题目描述 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 提示&#xff1a; 链表中节点数目在范围[1, 105] 内0 < Node.val < 9 进阶&#xff1a;你能否用 O(n) 时间…...

Centos安装Minio

文章目录 1 远程下载二进制文件2 创建目录&#xff1a;文件存储、日志3 授权执行4 启动5 创建配置文件6 注册服务并开机自启7 创建key附录参考文档 1 远程下载二进制文件 [rootlocalhost bin]# cd /opt/package [rootlocalhost package]# wget https://dl.min.io/server/minio…...

二叉树的基本概念和底层实现

1. 树型结构 1.1 认识树 在学习二叉树之前我们需要了解一下树型结构 树是一种非线性的数据结构,它是由n个结点组成的一个有层次关系的集合,看起来像个倒挂的树,也就是根朝上,枝叶朝下. 特点: 1. 根结点没有前驱结点 2. 除了根结点外其他的结点被分为互不相交的集合,每个集合又…...

GIF图片格式详解(三)

gif历史部分介绍请参考上一篇《GIF图片格式详解&#xff08;一&#xff09;》&#xff0c; 格式部分详解参考 《GIF图片格式详解&#xff08;二&#xff09;》 或直接访问博客地址&#xff1a;https://blog.whatsroot.xyz/2023/12/16/all-about-gif/ 本篇介绍下用于处理gif图…...

类和对象相关题

文章目录 1. 求123...n2. 计算是这一年的第几天3. 求两个日期之间的天数4. 算出第n天是几月几号5. 计算一个日期加上若干天后是什么日期 1. 求123…n 求123…n&#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&a…...

Word大珩助手:超大数字怎么读?35位数字?69位数字?

俄罗斯日前对谷歌开出了20000000000000000000000000000000000&#xff08;35位数字&#xff09;美元的罚款 这一数字远超全球GDP总和&#xff0c;消息一出很快就登上热搜。 面对这样一个庞大的数字&#xff0c;人们不禁好奇&#xff0c;这样的数字该如何读出来&#xff1f; …...

阿里云k8s-master部署CNI网络插件遇到的问题

问题 按照网络上的部署方法 cd /opt/k8s # 下载 calico-kube-controllers配置文件&#xff0c;可能会网络超时 curl https://docs.projectcalico.org/manifests/calico.yaml -O kubectl apply -f calico.yaml 试了很多次都不行&#xff0c;k8s-master都是Not ready的状态 ca…...

【LwIP源码学习4】主线程tcpip_thread

前言 本文对lwip的主要线程tcpip_thread进行分析。 正文 tcpip_thread是lwip最主要的线程&#xff0c;其创建在tcpip_init函数中 sys_thread_new(TCPIP_THREAD_NAME, tcpip_thread, NULL, TCPIP_THREAD_STACKSIZE, TCPIP_THREAD_PRIO);tcpip_init函数被TCPIP_Init函数调用。…...

求猫用宠物空气净化器推荐,有没有吸毛强、噪音小的产品

自从成为铲屎官&#xff0c;真的和当妈没有区别了。家里的毛孩子成天掉毛&#xff0c;我就跟在它屁股后面默默收拾&#xff0c;一举一动都要时刻关注。最近换季&#xff0c;家里还多了不少浮毛&#xff0c;全飘在空气中&#xff0c;阳光照射下非常明显。 我妈看到后各种吐槽&a…...

pycharm中python控制台出现CommandNotFoundError: No command ‘conda run‘.

1、错误现象 pycharm中打开python控制台出现CommandNotFoundError: No command conda run.的错误。 2、背景 conda是4.6版本&#xff0c;在Anaconda Prompt可以正常运行虚拟环境。 3、解决方法 更新conda版本&#xff0c;基本命令&#xff0c;会自动更新到最新版本。 con…...

架构师备考-架构基本概念

目录 基本概念 架构设计与生命周期 需求分析 设计阶段 实现阶段 构件组装阶段 部署阶段 后开发阶段 动态软件体系结构 体系结构恢复与重建 软件架构设计的重要性 基本概念 软件架构&#xff08;Software Architecture&#xff09;设计主要关注软件构件的结构、属性和…...

信奥赛C++知识点

参加信息学奥林匹克竞赛&#xff08;信奥赛&#xff09;所需学习的C知识点&#xff0c;以下是一个详细的知识点列表&#xff1a; 一、C语言基础 程序结构 头文件&#xff1a;包含必要的头文件&#xff0c;如<iostream>用于输入输出。 命名空间&#xff1a;使用using …...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...