c语言文件 w wt rrt,C语言与汇编语言对照分析.docx
游戏通常会包含各种各样的功能,如战斗系统、UI渲染、经济系统、生产系统等,每个系
统又包含各式各样子功能,如伤害判定、施法、使用道具、角色移动、玩家之间交易等 等。这些游戏功能在代码实现中往往少不了条件判断(如伤害判定)、循环(遍历物品列 表,播放游戏动画)等。
在逆向过程中如果可以从汇编语言识别出对应的语法结构,在分析过程中将汇编代
码转换为C语言语法结构,可以帮助对程序执行流程的理解。
下面分别介绍最常见的逻辑语法结构:
a)if...else
b)switch...case
c)for、while
注:文中使用的反汇编工具为IDA
一、if...else
_declspec(noirline) int IfFunction_e(int nlndex)
int nValue;
if (rtlndex == 1)
nValue - 9 } else if (nlndex — 2)
nValue = 0
}
else if (nlndrx == 3)
nVslue ? 0
}
else if (nlndex ■- 4)
nValue = 9x70000?&4;
)
else
{
nValue = 1W;
return nvalue;
汇编代码:
-NN
09*01270 ; int
u^ercJll iFrunctian 0@(Lnt n[ntf^xQ<?cx>)
.text
09*IM27e ? 1 fFunctiofl_aHSVftHH?7 proc OFdr: CDOE XRFf : rwin+S^p
.text
09J*Q127O nl皿M
■ ecu
.text
0BJIC127Q
enpnlndFX, 1
,text)nzshort loc 4S127B
,ttxt
0D4Q1275
mvFJXf 7O0DDQO1F1
,text
00*U127R
rttn
-text
,text -t函
OB40127B 00*?127B OD4D12?B
;CODE XRE F: IFFunct1QD 0(Int >?3Tj
-text
HD4H127B
enp
nlndf 2
-St
MD4V1??E
Jrw
short loe HO1?R6
,gt
l?U
71]
,C4*Xt
rein
Idc *0127B:
*trxt
,tPXt
* text
皿『MG 004012*6 她罹12"
*tPKt
enprtlndtxt 3
*text
jni?hort 1OC_*012Q1
? text
0DJIB12IIBnoueaxt 7D0DOO03F1
.text
。眄 nmre th
-text
0M?12Q1
.tvxt
00^01291 lac 4101291:
.tewt
004^1291tnpnlndex, 4
OBJ*0120*MV整AX. A?ih
?text
094^1299novedx? 7Q04QQ^h
.text
0B*V124ECMvf fax, Fdx
?tPXt
0^012A1rrtn
.text
Tirrunctiofl a@@YftHH@z endp
Idc U01286;
;£DDE XREF: 1Ffunction_B(int)?Etj
;CODE XREF: IFFunction a(int)>19tj
14^
14^
145
146
147
148
149
150
151
152
153
154
155
156
157
15E
159
160
161
162
163
164
165
166
167
1 AR
if...else结构比较固定,通常包含 cmp指令、jcc指令以及满足条件后执行的指令
块。
.text :fl0^i012F0cmpnlndex, 1
.text:004O12F3jnzshort loc_^912FB
.text:004O12F5moueax, 7如丽
.text:60ii012Ffiretn
if...else结构可以串联,串联后的if...else有明显的代码块边界,逆向工具通常
可以将代码块标识出来(图中虚线)。
.text:B04912FB nlntftK - ecx
一text: BBU012F&
.tFXt: 004012F fl ,text:0B4Q12FB .
.teit ;0Mt12FB
lot llOrUFa:
jnz nuu r?hth
nln<1ex r 1
short loc_hOt;tB JODflODOth
;CODE KRFF: IFFunctinn]
cmp
nIndex
c语言文件 w wt rrt,C语言与汇编语言对照分析.docx相关推荐
- c语言w加,C语言文件 w+与wb+区别
这是我今天碰到的问题,现在已经解决, 希望我的整理能够帮助到你们! w+以纯文本方式读写,而wb+是以二进制方式进行读写. mode说明: w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会 ...
- c语言文件有什么作用,C语言文件的使用方法
C语言文件的使用方法 C语言文件的使用方法:所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件 ...
- c语言文件可用代码存放,C语言 文件(示例代码)
小白一个,看到有错误,希望指出,万分感谢 /**************************************************************** C语言文件概述: 一般文件 ...
- c语言文件指针ab命令,C语言试题,~库(完整版~).doc
-_ C语言试题库 单项选择 C语言概述 一个C程序的执行是从 A.本程序的MAIN函数开始,到MAIN 函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的MA ...
- C语言 文件读写 fputc 函数 - C语言零基础入门教程
目录 一.fputc 函数简介 二.fputc 函数使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fputc 函数简介 fpu ...
- C语言入门教程||C语言 文件读写||C语言 预处理器
C语言 文件读写 本章我们将介绍 C 程序员如何创建.打开.关闭文本文件或二进制文件. 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层 ...
- C语言 文件读写 fputs 函数 - C语言零基础入门教程
目录 一.fgets 函数简介 二.fgets 函数使用 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fgets 函数简介 fge ...
- C语言 文件读写 fseek 函数 - C语言零基础入门教程
目录 一.fseek 函数简介 二.fseek 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.fseek 函数简介 fse ...
- C语言 文件读写 ferror 函数 - C语言零基础入门教程
目录 一.ferror 函数简介 二.ferror 函数实战 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.ferror 函数简介 ...
最新文章
- 遍历系统中所有的进程,可根据名字或ID查找某一个线程
- docker 同时停止删除容器 强制删除容器
- UA MATH524 复变函数14 Laurent级数
- 一点等于多少厘米_马桶知识介绍,你了解马桶多少
- 为什么不用php做系统吗,IT行业:为什么大部分人都不认可php语言呢?
- 如何区别***工具与病毒
- lpc2000 filash utility 程序烧写工具_重点必看 | 取证小程序开发之第四届美亚杯硬盘信息快速解题...
- matlab2c使用c++实现matlab函数系列教程-tril函数
- 拓端tecdat|python3用ARIMA模型进行时间序列预测
- POJ 3233 Matrix Power Series(java)
- QT入门之UI设计界面
- 1010: 求圆的周长和面积 ZZULIOJ
- ios 打包 验证应用失败原因汇总
- 剁手党:过年想收快递!马云:照常送!最高补贴三千让快递员团圆
- React Api请求最佳实践react-query3使用教程(比swr更好用更强大)
- AEDA: An Easier Data Augmentation Technique for Text Classification
- 软件开发中会使用到的图
- 【其他】对数转换的作用
- 数字电路-03组合电路设计
- Java找到1-1000以内所有可以被3整除并可以被7整除的数。