摘要:
打开ida之后ctrl+w保存idb文件,发现被拒绝。我以为是管理员权限的问题,测试发现还是依旧,最后发现是dropbox再上传东西,如果它在上传一个文件,你是不能写入这个文件的。 关闭dropbox即可。 阅读全文
摘要:
用vc6调试代码的时候看到反汇编代码里面有 call @ILT+35这种,查了一下ILT叫increament linking Table ,叫增量同步表。 它ILT涉及到的一种技术叫增量同步。 有这样一种应用场景,如果你有多个cpp文件,你只修改了其中一个cpp文件中的某个函数的一个小部分,那是不 阅读全文
摘要:
1.c++程序编译过程。包括两个阶段,compiler和linker。第一个阶段compiler是把c++文件编译成obj文件。第二个阶段是linker把多个obj文件和lib文件生成可执行文件。明白这个过程,对调试程序很有帮助,能够帮你确认问题发生在哪个阶段。比如提示syntax error,那就 阅读全文
摘要:
刚在52破解看了一篇花指令的文章,感觉挺好的。 第一种花指令是jmp+垃圾数据 比如 jmp label //这里存放垃圾指令或数据 label: //正常指令 push ebp mov ebp,esp 第二种是假分支跳转 xor eax, eax; test eax, eax; jnz LABEL 阅读全文
摘要:
1 阅读全文
摘要:
遇到不懂的指令,不用到网上查,自己用OD测试一下就知道了。 neg a neg指令执行的操作是把a的每个二进制位取反之后再加1。效果就是数学上的求相反数,比如neg 3的结果就是-3,neg -3的结果就是3. neg 0的结果就是0 经过测试发现,neg a 不管a是正数还是负数,都会置CF为1这 阅读全文
摘要:
sete指令通常和算数指令或者逻辑运算指令一起出现。 CMP eax,5 sete cl 首先顾名思义一下,sete的意思就是set equal 就是相等的时候设置,设置谁,设置cl,用谁设置cl的值,用ZF标志位的值。 所以sete指令的意思就是根据ZF标志位的值设置一个变量的值是1和0 上面代码 阅读全文