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

小企网站建设解决方案南充城市建设投诉网站

小企网站建设解决方案,南充城市建设投诉网站,长春网站只长春网站制作做,常德农科院网站目录 1.下面代码中if判断是什么含义,请分析 方法:枚举num的所有可能,看看判断的真假 代码 下面to_int32函数的作用是什么,请分析 方法:尝试一些数字去打印函数的返回值 代码 本文讲解枚举法和特值法 1.下面代码中if判断是什么含义,请分析 来自某修改器的逆向出的代码的…

目录

1.下面代码中if判断是什么含义,请分析

方法:枚举num的所有可能,看看判断的真假

代码

下面to_int32函数的作用是什么,请分析

方法:尝试一些数字去打印函数的返回值

代码


本文讲解枚举法和特值法

1.下面代码中if判断是什么含义,请分析

来自某修改器的逆向出的代码的一部分:

//num为unsigned int类型
if (num <= 12)
{if (((num - 8) & 0xFFFFFFFB) != 0){// do_something}
}

方法:枚举num的所有可能,看看判断的真假

枚举num的所有可能:循环

判断的真假的模版:

if ()
{printf("true");
}
else
{printf("false");
}

代码

因为num为unsigned int类型,因此从0枚举到12,打印每一种情况的真假

#include <stdio.h>
int main()
{for (unsigned int num=0;num<=12;num++)if (((num - 8) & 0xFFFFFFFB) != 0){printf("%d:true\n",num);}else{printf("%d:false\n", num);}
}

运行结果:

由运行结果可以看出:if判断等价为:

	if (num != 8 && num != 12){//do_something}

如果unsigned int类型的num没有规定范围,可以对所有值判断,代码如下

int main()
{for (unsigned int num = 0; num < UINT_MAX; num++)if (((num - 8) & 0xFFFFFFFB) != 0){//	printf("%d:true\n", num);}else{printf("%d:false\n", num);}
}

运行结果

下面to_int32函数的作用是什么,请分析

源代码片段来自https://github.com/pod32g/MD5/blob/master/md5.c 

摘自MD5算法的源文件的一部分:

uint32_t to_int32(const uint8_t* bytes)
{return (uint32_t)bytes[0]| ((uint32_t)bytes[1] << 8)| ((uint32_t)bytes[2] << 16)| ((uint32_t)bytes[3] << 24);
}

方法:尝试一些数字去打印函数的返回值

例如使用存有特定值的类型为uint8_t数组

代码

int main()
{uint8_t bytes[] = { 1, 2, 3, 4 };printf("%u",to_int32(bytes));
}

{ 1, 2, 3, 4 }与打印的结果67305985貌似没有什么关系,可能需要调整printf打印的格式,uint32_t既可以%u(十进制)打印,也可以以%x(十六进制)打印,尝试按%x打印

int main()
{uint8_t bytes[] = { 1, 2, 3, 4 };printf("%x",to_int32(bytes));
}

运行结果:

好像看出规律了,如下图所示:

可以推出to_int32函数的的等价写法如下,但没有原来的写法快

uint32_t to_int32(const uint8_t* bytes)
{return (uint32_t)bytes[0]+ ((uint32_t)bytes[1] * pow(2,8)//或运算在这里等价为+运算+ ((uint32_t)bytes[2] * pow(2, 16))+ ((uint32_t)bytes[3] * pow(2, 24)));
}

因此to_int32函数的作用:将一个类型为uint8_t的数组的四个元素转换为一个32位整数


文章转载自:

http://dyGPXuuI.mxcgf.cn
http://lRGkw9TO.mxcgf.cn
http://kAmRgisy.mxcgf.cn
http://ZIZMlsTd.mxcgf.cn
http://8nXMjuiC.mxcgf.cn
http://eV3y3cL2.mxcgf.cn
http://jX6CWGvp.mxcgf.cn
http://TREthXSf.mxcgf.cn
http://i3cDcfuY.mxcgf.cn
http://GrV1FAjM.mxcgf.cn
http://eNvwz9my.mxcgf.cn
http://SFTPiAUh.mxcgf.cn
http://ghBlGZkG.mxcgf.cn
http://u9jfBcId.mxcgf.cn
http://24wluEe2.mxcgf.cn
http://NoS6TRME.mxcgf.cn
http://org6daiq.mxcgf.cn
http://gYVWS6Tl.mxcgf.cn
http://HqW8Zukw.mxcgf.cn
http://uwWjqsLs.mxcgf.cn
http://whrjuzhv.mxcgf.cn
http://44ciNUwZ.mxcgf.cn
http://Qh0tqNh4.mxcgf.cn
http://l41U3wqb.mxcgf.cn
http://AgZ7zknq.mxcgf.cn
http://a53m7O0d.mxcgf.cn
http://WwH5FQ0A.mxcgf.cn
http://UEqSKnBw.mxcgf.cn
http://0JQwhB4K.mxcgf.cn
http://h2FDuYAs.mxcgf.cn
http://www.dtcms.com/wzjs/704401.html

相关文章:

  • 网站排名推广自己怎么做微信微网站制作
  • 网站做一半能退吗有哪些做农产品的网站有哪些
  • 微信与网站对接长沙市人才招聘网最新招聘信息
  • 个人网站可以放广告吗南京网站建设方案
  • 网站开发协议范本开发app制作公司
  • 网站在国内服务器在国外免费网页app一键生成软件
  • 分类信息网站开发网络培训平台有哪些
  • 酷站素材wordpress 漏洞 利用
  • wordpress 不能查看站点公众号里原文单发到dede网站上
  • 制作网站首页psd深圳十大品牌设计公司
  • 网站建设论文开题报告福州网站建设托管
  • 网站美观界面网站不做备案
  • 保定中小企业网站制作dede自适应网站注意事项
  • 如何做网站网页网站模版 蓝色
  • 怎么创建网站?百度合作的网盟网站
  • 合肥网站建设推荐 晨飞网络html博客网页完整代码
  • 怎么健免费网站吗最新新闻热点事件国际
  • 在小型网站建设小组网页服务器一年多少钱
  • 网站正在建设模板电影网站网页设计
  • 中小型网站建设的基本流程百度收录文章
  • 怎么建设个人博客网站wordpress 修改上传路径
  • 沭阳各乡镇做网站营销型网站郑州
  • 做网站用百度地图和天地图软件定制一般多少钱
  • 电子商务网站建设与管理小论文wordpress云盘
  • 可以投稿的写作网站dede 转wordpress
  • 如何给网站增加内链建设工程合同管理论文
  • 建设官方网站需要注意什么Wordpress host
  • 嵊州建设银行取款网站如何用自己公司网站做邮箱
  • 管理网页成都网站优化步骤
  • 重庆建一个网站高端建站公司源码