首页 > 编程语言 >C语言逆向分析——IF条件语句的反汇编,要熟悉各种if的姿势以及与或非表达式组合

C语言逆向分析——IF条件语句的反汇编,要熟悉各种if的姿势以及与或非表达式组合

时间:2023-04-02 19:49:24浏览次数:37  
标签:语句 逆向 判断 int ELSE 运算符 反汇编 C语言

第四课 IF语句的反汇编判断

 

 

第四课 练习1
int plus(int Y,int X)
    {
        int N = t;
        if(X<Y)
        t=t+Y;//t=N+yC
    }

void main()
    {
        plus(5,4);
    }


第五课 IF...ELSE...语句的反汇编判断

IF…ELSE…语句的反汇编判断:

 

 

 

第五课 IF...ELSE IF...ELSE IF..多分支语句的反汇编判断

记住知识点:

1、当每个条件跳转指令要跳转的地址前面都有jmp 指令

2、这些jmp指令跳转的地址都是一样的

3、如果某个分支没有条件判断,则为else部分


IF…ELSE IF…ELSE IF..多分支语句的反汇编判断:

 

 

 

 

 

第六课 关系运算符

关系运算符:

“==”、“!=”、“>=”、“<=”、“>”、“<”

关系运算符的结果只有2个0或者1.


 

 

 

 

上面截图有错:

vc6实践操作看到的:

 

第六课 逻辑运算符

 

 


1、逻辑与(&&)在反汇编中的形式:

逐条判断,符合条件不跳,继续判断下一条

 

 


 

 


2、逻辑或(||)在反汇编中的形式:

逐条判断,符合条件就跳,不判断下一条

 

 

 

 NOT非的反汇编分析:

 

 

 

 

标签:语句,逆向,判断,int,ELSE,运算符,反汇编,C语言
From: https://www.cnblogs.com/bonelee/p/17280998.html

相关文章

  • [每天例题]蓝桥杯 C语言 单词分析
    蓝桥杯C语言单词分析题目  题目要求1.寻找出现最多的字母和这个字母出现的次数。2.如果有多个字母出现的次数相等,输出字典序最小的那个。思路分析输入方法:方法一:1.可以通过数组来记录该单词,并为单词出现的每一个字母做上标记。2.可以采用for循环将字符串依次输......
  • 逆向——如何区分全局变量和局部变量
    第三节局部变量与全局变量的区别记住知识点:1、全局变量,在程序生成后,内存地址是固定了,只有重新编译后,内存地址才会改变。2、全局变量,在汇编中是内存地址的格式存储;局部变量是以[ebp-xxx]的格式存储。  局部变量与全局变量的区别全局变量与局部变量的区别在于作用域的......
  • WebAssembly逆向
    一、WebAssembly简介WebAssembly是一种可以使用非JavaScript编程语言编写代码,并且能在浏览器上运行的技术方案。借助Emscripten编译工具,能将C/C++文件转成wasm格式,JavaScript可以直接调用该文件并执行其中的方法。好处可以隐藏核心逻辑,增大逆向难度提高执行效率(基于C/......
  • re/【unity】游戏逆向首试 [BJDCTF2020]BJD hamburger competition
    本题是是一个unity游戏,而且是以c#和.net编写尝试直接用idea进行反汇编,但是没有找到运行逻辑,后来在大佬的wp上发现是利用dnspy对c#的dll文件进行返回编,进而获得结果。反汇编BJDhanburgercompetirion_Data中的Assembly-CSharp.dll即可获得如下代码段:可以看到先利用sha1进行加......
  • 逆向——浮点数的表示,遇到了就去在线查吧,还原起来比较难受
    第二节2.5数据类型与存储 浮点数这玩意自己去在线转换下就行了: http://www.styb.cn/cms/ieee_754.php     详细:         第二节2.6浮点数的存法记住知识点:1、小数点左移,指数部分:指数减1的二进制数  2、小数点右移,指......
  • C语言学习记录(终)
    C语言学习记录(终)一、知识要点(文件)一、文件和文件类型指针1、流和文件的概念流的概念我们不管什么物理设备硬件什么的,就把数据的输入输出抽象化为一种流,这样就可以方便编程,具有通用性。流分为文本流和二进制流文本流中的数据以字符形式存放,每个字符用ASCII码表示,占一个字......
  • C语言逆向——如何寻找main入口,一个反汇编成C的实战练习
    第二节2.3找程序的入口原文:https://www.showdoc.com.cn/fengxin1225/7054696489361869控制台应用程序的main函数入口在OD中找到以上其他中的函数,然后跟着3个参数的CALL就是main例:———————————————————- 第二节2.4.1逆向并还原为C代码(网上解答)......
  • 跟着鹏哥学C语言-第四天
    if语句if(表达式)语句; if(表达式)语句1;else语句2;多分枝if(表达式1)语句1;elseif(表达式2)语句2;else语句3;如果条件成立,要执行多条语句,则应该使用代码块intmain(){ intage=40; if(age<18) printf("未成年\n"); elseif(age>=18&&age<=28) printf("青年人......
  • PAT Basic 1059. C语言竞赛
    PATBasic1059.C语言竞赛1.题目描述:C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。1、排名为素数的学生将赢得最好的奖品——小黄人玩偶!2、......
  • C语言逆向汇编——参数局部变量、函数堆栈、调用约定和内嵌汇编码
    第一节1.1C语言1、注意参数和局部变量在堆栈中的存储方式2、参数在调用函数前就已经存入堆栈,从[EBP+8]、[EBP+C]、……开始。3、局部变量是在调用函数后,存入缓冲区里,从[EBP-4]、[EBP-8]、……开始4、函数运算得到的结果,通常存在EAX里。        第一......