随笔分类 - 汇编
摘要: 
阅读全文
摘要: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 在汇编中堆对象如何确定构造函数的范围 #include <stdio.h> class Person { public: Person() { age = 20; } virtual int getAge(){ return this->age; } int age; }; i
阅读全文
摘要:现象 最近发现ida居然无法识别vs2019 printf,作为有轻微强迫症的我无法容忍,如下图所示 test.cpp: #include <stdio.h> int main(int argc, char* argv[]) { printf("hello world!"); return 0; }
阅读全文
摘要:现在我们来逐步分析每一条代码的作用 push ecx 这条代码实际上是为了将esp-4,腾出一个局部变量的栈空间 lea eax,dword ptr ss:[esp] 将刚刚增加的栈空间的地址放入eax中 mov dword ptr ss:[esp],0 初始化这个变量 push eax 将变量地址
阅读全文
摘要:\(\frac{x}{c}=x*\frac{2^n}{c}*\frac{1}{2^n}\) 这样就把除法转换为被除数x乘以一个整数,再右移n位的形式,但是有一个问题,因为右移n位是取下整 右移n位是取下整 例子: -3/2 = 0xFFFFFFFD / 2 =0xFFFFFFFD >> 1 =
阅读全文
摘要:SHL(汇编指令)。 shift letf 格式:SHL DST,1 功能:将目的操作数顺序左移1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移入进位标志位CF,最低位补零。 ROL(循环左移) 指令把所有位都向左移。最高位复制到进位标志位和最低位。 scasb(scanf string
阅读全文
摘要:JB = jump not above and equal 当CF=1,且ZF不等1时跳转
阅读全文
摘要:XOR 指令在两个操作数的对应位之间进行(按位)逻辑异或(XOR)操作,并将结果存放在目标操作数中: XOR destination, source
阅读全文

浙公网安备 33010602011771号