文章分类 -  汇编之路

摘要:== jne> jle= jl <= jg 阅读全文
posted @ 2013-09-02 15:50 宝贝,我永远都在 阅读(87) 评论(0) 推荐(0)
摘要:==if(i==5){ jne ==下面汇编还原://把jne 和 == 联系起来,埋下心锚,是不是很好理解}int i=6;013713BE mov dword ptr [i],6 if(i==5){013713C5 cmp dword ptr [i],5013713C9 jne wmain+42h (013713F7h) if(i == 5)//就执行下面代码 printf("1ni");013713CB mov esi,esp013713F7 ret---------------... 阅读全文
posted @ 2013-09-02 15:43 宝贝,我永远都在 阅读(213) 评论(0) 推荐(0)
摘要:int _tmain(int argc, _TCHAR* argv[]){ printf("begin\n");int a=3;int b=5;if (a>b) //JLE/JNG 小于等于/不大于时转移,,把JLE 理解成 > 符号 cmp 3 - 5, zf=0(因为不相等) sf = 1(负数){ printf("do this");}}把jle和jng 理解为 > 符号,比如:if(3>5){ cmp 3,5=3-5, 意思就是 如果3 > 5 成立则进入,否则则跳转printf("123"); 阅读全文
posted @ 2013-08-31 12:24 宝贝,我永远都在 阅读(688) 评论(0) 推荐(0)
摘要:一个方法对应一个栈,下面见图先传入了一个参数1,从右到左的传参数,在调用call的方法内存地址,然后,她会先把下一行执行的代码push进栈中,也就是下一行的地址:0020142c最后的add esp,4,其实就是我们刚刚给栈中传入了一个参数,所以咱们得维护栈的平衡咱们看看方法内部先保存上一个方法的栈底指针,push ebp在把上一个方法的栈顶指针作为这个方法的栈底指针,mov ebp,espsub esp,0d8 在给本方法分配局部变量的大小mov eax,dword ptr ss:[ebp+8] 把上一个,也就是传进入的参数赋值给eax最后在 mov esp,ebp. 把这个方法的栈底指.. 阅读全文
posted @ 2013-08-29 23:29 宝贝,我永远都在 阅读(458) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-08-18 20:27 宝贝,我永远都在 阅读(138) 评论(0) 推荐(0)