rand函数用来生成随机数,函数原型为int rand( void );

返回值为生成的随机数,范围0~32767。在调用rand之前可以用srand函数初始化随机数发生器来生成更随机的数。

可以通过%取模运算来生成一定范围内的随机数。

在应用程序,希望通过生成随机数,来产生20~26范围之间的浮点数。用OD打开应用程序,在函数导入表中没找到rand,需要手动添加。好在Stub_PE工具可以很方便导入库函数。

用Stub_PE打开应用程序,在Functions窗格。

点击右键,选择Add New Import

Dll Select选择MSVCRTD.DLL,Select func.选择rand,点击Add to list,因为只想增加rand函数,最后点击ADD按钮

Stub_PE增加newimp节,里面为rand函数。

OD打开应用程序,右键选择查打-当前模块的名称(标签),可以看到导入函数表中有rand函数,地址为0x00681174。

在导入函数的空余位置,点击汇编,输入jmp dword ptr ds:[0x681174]

当前地址为0x0054A372.

在需要插入rand函数处,输入汇编call 0054A372 ,OD自动识别出调用函数rand

然后对5000取模,转成浮点数,除以200,加上20.3基数,应用程序就可以生成20~26之间的浮点数了~

C语言:应用程序增加库函数rand的步骤的更多相关文章

  1. C语言编程程序的内存如何布局

    重点关注以下内容: C语言程序在内存中各个段的组成 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过 ...

  2. 给Win32 GUI程序增加控制台窗口的方法

    给Win32 GUI程序增加控制台窗口的方法 2008年10月11日 星期六 下午 04:43 在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用Messag ...

  3. R语言服务器程序 Rserve详解

    R语言服务器程序 Rserve详解 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到 ...

  4. Hybrid App是如何实现网页语言与程序语言的混合?谁占主体?

    [编者按]本文作者@徐珂铭,一位看好Html5的移动互联网的从业人士.喜爱玩技术,会点JAVA.HTML及CSS,有自己的想法及姑且能表达想法的文字,因此有了自己的文章. 基于HTML5的Web Ap ...

  5. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  6. 通过反汇编C语言小程序学习Liunx汇编语言

    大家好!    我是来自山东师范大学的吴乐.    今天在<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ...

  7. c语言诊断_断言库函数#include<assert.h>

    诊断<assert.h>  assert #include <assert.h> void assert(int exp); assert宏用于为程序增加诊断功能.当asser ...

  8. WISE安装程序增加注册控制

    我做安装程序,一直用的WISE 9.最近为一个用户提供安装程序时,公司要求对安装程序增加控制,避免用户到处安装,增加公司服务的压力.因此,我在WISE制作的安装程序中增加了注册码校验控制,不能给出正确 ...

  9. windows系统下c语言暂停程序

    原文:windows系统下c语言暂停程序 windows系统下,很多C语言初学者的调试时,往往没看到结果程序就退出了,据我所知的方法主要有以下几种 方法一: #include int main() { ...

  10. Linux下简单C语言小程序的反汇编分析

    韩洋原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 写在开始,本文为因为参加MOO ...

随机推荐

  1. 解决BitBucket仓库较大拉取失败,使用SSH拉取

    HTTPS 拉取 如果使用的是https拉取,可使用以下命令尝试,如果还是失败,可使用 ssh 拉取 git clone --depth=1 xxxx.git --depth=1:拉取最近1次提交记录 ...

  2. 韦东山freeRTOS系列教程之【第十章】软件定时器(software timer)

    目录 系列教程总目录 概述 10.1 软件定时器的特性 10.2 软件定时器的上下文 10.2.1 守护任务 10.2.2 守护任务的调度 10.2.3 回调函数 10.3 软件定时器的函数 10.3 ...

  3. Redis学习篇

    Redis 能用来做什么? 01 缓存 Redis 的最常用的用例是缓存,以加快网络应用的速度.在这种用例中,Redis 将经常请求的数据存储在内存中.它允许网络服务器频繁访问的数据.这就减少了数据库 ...

  4. yb课堂 搭建node环境和npm安装 《二十六》

    搭建node环境和npm安装 什么是NodeJS? Node.js就是运行在服务端得JavaScript 什么是npm? nodejs的包管理工具,可以下载使用公共仓库的包,类似maven包安装分为本 ...

  5. 微信小程序热门选题

    一.大体实现思路 微信小程序,现在是非常热门的,基于微信生态开发的.现在很多计算机毕业的同学,都会选择微信小程序作为毕业设计 小程序端通常都是展示数据给用户去看的,大多数情况下,这些数据不是写死的,而 ...

  6. Day 11 - 模拟考

    WTP 的大洗牌 题目描述 \(\text{input1}\) 3 1 1 1 1 2 3 \(\text{output1}\) 10 0 数据范围 shuffle.zip 第一题 题目描述 输入格式 ...

  7. pandas无法打开.xlsx文件,xlrd.biffh.XLRDError: Excel xlsx file; not supported

    原因是最近xlrd更新到了2.0.1版本,只支持.xls文件.所以pandas.read_excel('xxx.xlsx')会报错. 可以安装旧版xlrd,在cmd中运行: pip uninstall ...

  8. Superviso可视化监控进程

    如果您需要同时运行多个 ThinkPHP 命令,可以在 Supervisor 中为每个命令创建一个单独的程序段.以下是示例配置,其中包含两个 ThinkPHP 命令:command1.php 和 co ...

  9. jwt redis,微信登陆知识复习 uniapp 请求封装,统一异常处理 相关, HutoolDemo工具介绍)

    第三节   后台布局搭建,代码可以人工智能来写,但是环境初步搭建需要我们先建起来,所以以下记录快带搭建的过程, 思路: 后台首页的搭建 第一   用到了element--UI 自带的页面布局组件,它就 ...

  10. 15、Spring之基于xml的声明式事务

    阅读本文前,建议先阅读Spring之基于注解的声明式事务 15.1.环境搭建 创建名为spring_transaction_xml的新module,过程参考13.1节 15.1.1.配置打包方式和依赖 ...