随笔分类 - 汇编
跳转指令有符号无符号表
摘要: 
记录第一次使用c++和汇编联合编译
摘要:32位 从Ida把目标函数扣出来 toUapper proc near arg_0 = dword ptr 4 push esi mov esi, [esp+4+arg_0] push edi mov edi, esi or ecx, 0FFFFFFFFh xor eax, eax repne sc
release vs 在汇编中堆对象如何确定构造函数的范围
摘要:release vs 在汇编中堆对象如何确定构造函数的范围 #include <stdio.h> class Person { public: Person() { age = 20; } virtual int getAge(){ return this->age; } int age; }; i
解决ida无法识别printf的缺陷
摘要:现象 最近发现ida居然无法识别vs2019 printf,作为有轻微强迫症的我无法容忍,如下图所示 test.cpp: #include <stdio.h> int main(int argc, char* argv[]) { printf("hello world!"); return 0; }
除法优化有符号-2的幂逆向还原
摘要:现在我们来逐步分析每一条代码的作用 push ecx 这条代码实际上是为了将esp-4,腾出一个局部变量的栈空间 lea eax,dword ptr ss:[esp] 将刚刚增加的栈空间的地址放入eax中 mov dword ptr ss:[esp],0 初始化这个变量 push eax 将变量地址
有符号非2的幂的第一种优化
摘要: 这样就把除法转换为被除数x乘以一个整数,再右移n位的形式,但是有一个问题,因为右移n位是取下整 右移n位是取下整 例子: -3/2 = 0xFFFFFFFD / 2 =0xFFFFFFFD >> 1 =
汇编指令记录
摘要:SHL(汇编指令)。 shift letf 格式:SHL DST,1 功能:将目的操作数顺序左移1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移入进位标志位CF,最低位补零。 ROL(循环左移) 指令把所有位都向左移。最高位复制到进位标志位和最低位。 scasb(scanf string