一段汇编代码的分析
来源:互联网 发布:查看linux cpu核数 编辑:程序博客网 时间:2024/05/17 03:07
今天在逆向的时候碰到了如下一段汇编代码,对里面的magicnumber有点好奇,研究了一下:
.text:6E06EB40 000 push ebp.text:6E06EB41 004 mov ebp, esp.text:6E06EB43 004 push ebx.text:6E06EB44 008 mov ebx, ecx.text:6E06EB46 008 mov ecx, [ebp+size].text:6E06EB49 008 push esi.text:6E06EB4A 00C push edi.text:6E06EB4B 010 mov edi, edx.text:6E06EB4D 010 lea esi, [ecx+2].text:6E06EB50 010 mov eax, 0AAAAAAABh.text:6E06EB55 010 mul esi.text:6E06EB57 010 shr edx, 1 ;高32位逻辑右移1位.text:6E06EB59 010 shl edx, 2 ;高32位逻辑左移2位.text:6E06EB5C 010 cmp edi, edx.text:6E06EB5E 010 jnb short loc_6E
其实是计算:
(ECX + 2)*(AAAAAAAB/2^32/2)*4
所以上面的汇编代码就是在计算ECX的值加上2再除以3然后再乘以4.
总结:
Mov eax, MagicNumber
mul ...
Shr edx,...
Mov reg, edx
;此后直接使用EDX的值,EAX弃而不用
当遇到以上指令序列式,基本可判定是除法优化后的代码。Mul表明是无符号计算。
参考:《c++反汇编与逆向分析技术揭秘》 钱林松 赵海旭 著
- 一段汇编代码的分析
- 高级语言的一段汇编代码分析
- 一段大家熟悉的汇编代码分析
- 史上最牛的一段汇编代码
- 一段代码的反汇编
- 汇编并分析一段简单C代码
- 反汇编出的一段代码
- 《网络渗透技术》学习笔记(2)——一段简单的汇编代码分析 zz
- 一段重入锁的代码分析
- SVNKIT一段代码的分析
- 《网络渗透技术》学习笔记(3)——一段穿透防火墙的Shellcode汇编代码分析 zz
- VC编译的除法的一段汇编代码解释
- 关于一段游戏汇编代码的破解,求大家指点
- 一段汇编代码翻译成c语言的练习
- 一段有趣的代码的分析
- 汇编代码的简单分析
- system_call的汇编代码分析
- 一段经典的javascript代码分析
- 硬盘读写速度测试
- BadBoy录制性能测试脚本(四)
- Android布局编写示例【慢慢更新】
- java Map及Map.Entry详解
- Hibernate操作CLOB字段
- 一段汇编代码的分析
- linux stable kernel development
- hive merge file
- 浅谈 js中parseInt函数的解析
- Samy worms致使MySpace一天关闭的XSS攻击
- 第三方JAR无法关联源码
- 关于大端与小端的思考
- php高级应用之进程控制及进程间通讯
- Addressing pointers