c/c++逆向(一)
来源:互联网 发布:pano.js 720全景图 编辑:程序博客网 时间:2024/06/07 05:54
一个基本的c console程序 :
int Sum1(int nNum1, int nNum2){int nRet = 0;nRet = nNum1 + nNum2;return nRet;}_declspec(naked) int Sum2(int a, int b){__asm{pushebpmovebp,espsubesp,44hpushebxpushesipushedileaedi,[ebp-44h]movecx,11hmoveax,0cccccccchrepstosdword ptr es:[edi]//局部变量赋值mov[ebp-4],0//求和moveax,[ebp+8]//第一个参数addeax,[ebp+0ch]//第二个参数//局部变量(返回值) 赋值(编译器对此代码肯定会有优化、因为一般通过eax得到函数的返回值)mov[ebp-4],eaxpopedipopesipopebxmovesp,ebppopebpret}}int main(int argc, char* argv[]){int nRet = 0;int nNum1 = 5;int nNum2 = 8;nRet = Sum1(nNum1, nNum2);//用汇编实现上面代码注:这里不考虑release版本、编译器所做的优化__asm{//局部变量赋值mov[ebp-4],0mov[ebp-8],5mov[ebp-0ch],8//压栈参数-从右向左 注:[ebp+4]=call的下一条指令moveax,[ebp-0ch]pusheax//在函数内部访问时=[ebp+0ch]movecx,[ebp-8]push ecx//在函数内部访问时=[ebp+8]//调用函数callSum2//平衡参数addesp,8//给局部变量(返回值) 赋值mov[ebp-4],eax}return 0;}
0 0
- c/c++逆向(一)
- 【学习逆向工程,分析机器代码】(一)(C语言篇)
- 天书笔记(1)---逆向C基础
- 单链表逆向 c
- objective-c 逆向资料
- c语言逆向基础
- 逆向 C++-- 2 识别类
- hotpatch逆向代码~HotPatch.c
- C#/.NET基础逆向简述
- codeforces 250/C 逆向思维
- 逆向入门(一)
- CodeForces 722C. Destroying Array(逆向思维)
- codeforces 490C Hacking Cypher(大数逆向取模)
- 一款发帖软件的逆向分析(C#)
- Prefer C++(一)
- C要点(一)
- C基本概念(一)
- objective-c(一)
- Linux-EXT2文件系统
- 数组中异常数发现
- 欢迎使用CSDN-markdown编辑器
- jQuery弹出层_点击自身以外地方关闭弹出层
- 用对话框指针来控制创建关闭和清除子对话框
- c/c++逆向(一)
- 20150609类和对象(上)
- POJ3080:Blue Jeans(后缀数组)
- easyUI datagrid ajax实时刷新 动态添加列名
- 位运算其他应用
- spark一些入门资料
- Linux 性能监控、测试、优化工具
- HTTP协议详解
- OPENCART高级搜索引擎优化(SEO PACK PRO)