关于汇编跳转指令-菜鸟提问
我有一段程序代码在内存中以这样的形式排列
mycode[7] =
{
A, B, C, D, E, F, G
}
执行的时候在Main函数中用以下汇编语言调用执行
_asm
{
lea eax,mycode
call eax
}
现在我想打乱代码在内存中排列的位置,所以想用拆解数组的方法,把上面的mycode拆解成7个数组,分别如下
Acode[1] ={A}
Bcode[1] ={B}
Ccode[1] ={C}
Dcode[1] ={D}
Ecode[1] ={E}
Fcode[1] ={F}
Gcode[1] ={G}
拆解完以后,在内存中打乱顺序排列,比如倒序排列,然后再通过汇编跳转指令将它们连接成顺序执行:
Gcode[1] ={G}
Fcode[1] ={F}
Ecode[1] ={E}
Dcode[1] ={D}
Ccode[1] ={C}
Bcode[1] ={B}
Acode[1] ={A}
_asm
{
lea eax,Acode(不知道还这样写对不对)// 第一行
call eax 先执行第一句指令,//第二行
执行完后在这里加一个跳转,再去执行Bcode,//第三行
执行完后再跳转到Ccode
如此反复,直到执行完所有代码
}
请问我该怎么写汇编指令,并且拆解mycode数组为分数组时,是不是要注意什么细节,比如大小要满足什么条件之类?另外,为了达到免杀效果,我想在上面汇编指令第一行前面加一个花指令,就是跳来跳去没有实质性意义的汇编指令代码,不知道该怎么写,如果在第二行与第三行之间加花指令,又该怎么写?想请大家帮忙,最好给上代码,并加以简单注释。小菜正在学习汇编指令,80X86的,才看完王爽的几个章节,对于WIN32的还完全没研究过,昨天去书城买书也没买上中意的,完全是小白一个,先在这里谢谢大家了~ 汇编 跳转语句
[解决办法]
Acode 里面有 RET 吗?
没有的话,它怎么返回呢?
[解决办法]