您的位置:首页 > 其它

反汇编个人练习:不用循环语句实现循环操作

2012-10-22 16:38 260 查看
#include<iostream>
using namespace std;
int main()
{
int a=10;
if(a<0)while(true);
else {cout<<a<<endl;a--;}
_asm
{
jmp main+1Fh;
}

return 0;
}


部分汇编语句:

3: int main()

4: {

00401780 push ebp // main=00401780,该函数指令的首地址,函数名代表该函数内第一条指令的地址

6: if(a<0)while(true);

0040179F cmp dword ptr [ebp-4],0

......

10: jmp main+1Fh;

004017D5 jmp main+1Fh (0040179f)

通过这样一个简单的jmp 就实现了循环操作, 不过有个问题困扰我,是否有什么办法能够让jmp 跳到指定的代码行去,比如 本程序就是要跳到执行 if(a<0)while(true)该语句执行的指令地址,后面如果知道,再来更新这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: