首页 > 逆向调试 > strlen反汇编代码

strlen反汇编代码

一般来说strlen的反汇编代码都是一个固定的形式。
IDA中的的反汇编代码如下:

.text:00401016 8D 7C 24 0C       lea     edi, [esp+10Ch+var_100]
.text:0040101A 83 C9 FF          or      ecx, 0FFFFFFFFh
.text:0040101D 33 C0             xor     eax, eax
.text:0040101F F2 AE             repne scasb
.text:00401021 F7 D1             not     ecx
.text:00401023 49                dec     ecx

OD中显示的反汇编代码如下:

00401016  |.  8D7C24 0C     LEA EDI,DWORD PTR SS:[ESP+C]
0040101A  |.  83C9 FF       OR ECX,FFFFFFFF
0040101D  |.  33C0          XOR EAX,EAX
0040101F  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
00401021  |.  F7D1          NOT ECX
00401023  |.  49            DEC ECX

据说高手看反汇编跟看小说一样,慢慢努力吧~~


觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> strlen反汇编代码
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: 逆向调试 标签: , ,
  1. pestu
    2011年5月15日22:53 | #1

    逆多了就条件反射了

    [回复]

  2. 2011年5月15日23:16 | #2

    @pestu
    呵呵 就是这样的

    [回复]

  3. 2011年5月17日08:56 | #3

    汇编早已忘记得差不多了,呵呵

    [回复]

  4. 2011年5月17日12:39 | #4

    @代码部落(Winson)
    [em012] 没看的话肯定是忘记了。呵呵,每个人的专注领域都不一样嘛

    [回复]

  5. 2011年5月17日13:18 | #5

    [em022] [em021] [em016] [em014] [em012] [em001] [em009] [em011]

    [回复]

  6. 2011年5月21日20:59 | #6

    我靠,看这种代码显得我就跟文盲似的。 [em018] [em018]

    [回复]

  7. 2011年5月22日09:56 | #7

    @the5fire的技术博客
    后面那一截就汇编代码了 前面的分别是内存地址和 机器码

    [回复]

  8. S_A_T
    2012年6月9日20:47 | #8

    先对ecx取0的补码,然后用repne循环,最后对ecx取补还原(not ecx ; dec ecx;)。ecx就是字符串长度。
    不过根据__cdecl调用约定,eax应该是返回值的储存寄存器。或许……代码被编译器彻底“优化”了。

    [回复]

  9. Hades
    2013年8月21日20:32 | #9

    这个只是最简单的方法,长串用起来挺慢的

    [回复]