找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 4861|回复: 0

[转载] 破解常见反汇编代码

[复制链接]
  • TA的每日心情

    2025-6-23 21:25
  • 签到天数: 126 天

    [LV.7]常住居民III

    admin 发表于 2010-12-3 12:35:56 | 显示全部楼层 |阅读模式

    欢迎您注册加入!这里有您将更精采!

    您需要 登录 才可以下载或查看,没有账号?注册

    ×
    1)经典比较组合,常为注册码出现处(by programhunter)
    1 [mw_shl_code=asm,true]mov   eax [       ]   ;这里可以是地址,也可以是其它寄存器mov   edx [       ]  ; 同上   通常这两个地址就储存着重要信息
    call 00??????
    test eax eax
    jz(jnz) [/mw_shl_code]
    2
    [mw_shl_code=asm,true]mov   eax [       ]   ;这里可以是地址,也可以是其它寄存器
    mov   edx [       ]   同上   通常这两个地址就储存着重要信息
    call 00??????
    jne(je) [/mw_shl_code]
    3
    [mw_shl_code=asm,true]   mov eax [   ]
       mov edx [   ]
       cmp eax,edx
       jnz(jz) [/mw_shl_code]
    或者
    [mw_shl_code=asm,true]begin   mov al [   ]
           mov cl [   ]
           cmp al,cl
           jnz(jz)
           mov al [   +1]
           mov cl [   +1]
           cmp al,cl
           jnz(jz)
           cmp eax ecx (eax为计数器)
           jnl begin
           mov al 01 [/mw_shl_code]
    4
    [mw_shl_code=asm,true]     lea edi [     ]
         lea esi [     ]
         repz cmpsd
         jz(jnz) [/mw_shl_code]
    5
    [mw_shl_code=asm,true]     mov   eax [       ]   ;这里可以是地址,也可以是其它寄存器
       mov   edx [       ]   ;同上   通常这两个地址就储存着重要信息
       call 00??????
         setz (setnz) al (bl,cl…) [/mw_shl_code]
    6
    [mw_shl_code=asm,true]mov   eax [       ]   ;这里可以是地址,也可以是其它寄存器
    mov   edx [       ]   ;同上   通常这两个地址就储存着重要信息
    call 00??????
    test eax eax
    setz (setnz) bl,cl… [/mw_shl_code]
    7
    [mw_shl_code=asm,true]
    call 00??????   *** ; 这个形式比较特别,它的关键比较地方不在第二call中,而在第一call中
    push eax (ebx,ecx…)
    ……
    ……
    call 00??????
    pop eax (ebx,ecx…)
    test eax eax
    jz(jnz) [/mw_shl_code]

    (2)注册码按字节依次给出
    [mw_shl_code=asm,true]0042A159 0FBE03                   movsx eax, byte ptr [ebx]
    0042A15C 50                       push eax             ;^^^^^
    0042A15D E8228C0400               call 00472D84
    0042A162 59                       pop ecx
    0042A163 83F84A                   cmp eax, 0000004A; ---->J
    0042A166 7559                     jne 0042A1C1
    0042A168 0FBE5301                 movsx edx, byte ptr [ebx+01]
    0042A16C 52                       push edx             ;^^^^^^^
    0042A16D E8128C0400               call 00472D84
    0042A172 59                       pop ecx
    0042A173 83F853                   cmp eax, 00000053 ;^^^^^^^^^^^^^^^^^----> S
    0042A176 7549                     jne 0042A1C1
    0042A178 0FBE4B02                 movsx ecx, byte ptr [ebx+02]
    0042A17C 83F924                   cmp ecx, 00000024     ;^^^^^^^^^^^^^^^^^^^^^^^^----> $
    0042A17F 7540                     jne 0042A1C1
    0042A181 0FBE4303                 movsx eax, byte ptr [ebx+03]
    0042A185 83F832                   cmp eax, 00000032   ;^^^^^^^^^^^^^^^^^^^^^^^^^----> 2
    0042A188 7537                     jne 0042A1C1
    0042A18A 0FBE5304                 movsx edx, byte ptr [ebx+04]
    0042A18E 83FA38                   cmp edx, 00000038   ;^^^^^^^^^^^^^^^^^^^^^^^^^----> 8
    0042A191 752E                     jne 0042A1C1
    0042A193 0FBE4B05                 movsx ecx, byte ptr [ebx+05]
    0042A197 83F939                   cmp ecx, 00000039   ;^^^^^^^^^^^^^^^^^^^^^^^^----> 9
    0042A19A 7525                     jne 0042A1C1
    0042A19C 0FBE4306                 movsx eax, byte ptr [ebx+06]
    0042A1A0 83F832                   cmp eax, 00000032   ;^^^^^^^^^^^^^^^^^^^^^^^^^----> 2
    0042A1A3 751C                     jne 0042A1C1
    0042A1A5 0FBE5307                 movsx edx, byte ptr [ebx+07]
    0042A1A9 83FA31                   cmp edx, 00000031   ^^^^^^^^^^^^^^^^^^^^^^^^^----->1 [/mw_shl_code]
    (3)比较位数
    [mw_shl_code=asm,true]cmp dword ptr[ebp-04],0000000A
    jne/jge/jle/je 00xxxx [/mw_shl_code]

    [mw_shl_code=asm,true]mov eax, dword ptr [ebp-04]
    call 00xxxx
    cmp eax, 0000000A ;<----比较注册码是否为10位
    jne 00xxxxx   ;<----不是,错[/mw_shl_code]
    (4)VB程序经典比较
    [mw_shl_code=asm,true]PUSH       XXX                       ;假注册码
    PUSH       XXX                       ;真注册码
    CALL       [MSVBVM60!__vbaStrCmp]
    TEST       EAX,EAX
    JNZ       00XXXXX [/mw_shl_code]
    (5)SmartCheck中,注册码常出现处
    [mw_shl_code=vb,true]__vbasrtcmp(String:"zzzzz",String:"yyyyy")returns
    __vbaStrVarVal(VARIATN:String"a") returns
    __vbaVarTstEq(VARIANT:****, VARIANT:****) returns [/mw_shl_code]
    (6)依次取两位比较
    [mw_shl_code=asm,true]004044D8 8A10     mov dl, byte ptr [eax]
    004044DA 8ACA     mov cl, dl
    004044DC 3A16     cmp dl, byte ptr [esi]
    004044DE 751C     jne 004044FC
    004044E0 84C9     test cl, cl
    004044E2 7414     je 004044F8
    004044E4 8A5001   mov dl, byte ptr [eax+01]
    004044E7 8ACA     mov cl, dl
    004044E9 3A5601   cmp dl, byte ptr [esi+01]
    004044EC 750E     jne 004044FC
    004044EE 83C002   add eax, 00000002 ***
    004044F1 83C602   add esi, 00000002 ***
    004044F4 84C9     test cl, cl
    004044F6 75E0     jne 004044D8 [/mw_shl_code]
    每次程序依次取两位,放入byte ptr [esi],byte ptr [esi+1],与eax, eax+1比较。如此循环
    (7)小写转大写(一时找不到,自己补充)
    (8)大写转小写(一时找不到,自己补充)


    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇ICP备09007156号-2|53050202000040 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-8-30 15:39 , Processed in 0.126145 second(s), 15 queries , File On Powered by Discuz! X3.59© 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表