CrackMe160 学习笔记 之 018

前言

先吐下槽,终于不是VB的程序了,能看正常一点的汇编代码了。

这个程序也是异常的简单,太简单就没什么兴致写博客了。

在这里插入图片描述

思路

验证函数处和固定字符串"<BrD-SoB>"比较。

结束。

分析

主要程序分析完了,顺便看看库函数吧。

lstrlenA 函数

7C80BE46 >  6A 08           push    8
7C80BE48    68 80BE807C     push    7C80BE80
7C80BE4D    E8 8466FFFF     call    7C8024D6
7C80BE52    8B45 08         mov     eax, dword ptr [ebp+8]           ; 字符串地址
7C80BE55    85C0            test    eax, eax                         ; 判断不为空
7C80BE57    0F84 F0A70200   je      7C83664D
7C80BE5D    8365 FC 00      and     dword ptr [ebp-4], 0             ; ebp-4 清零
7C80BE61    8D50 01         lea     edx, dword ptr [eax+1]           ; edx 保存第一个字符下一个的地址
7C80BE64    8A08            mov     cl, byte ptr [eax]               ; 从字符串取一个字节的字符
7C80BE66    40              inc     eax                              ; 计数器加一,指向下一个字符
7C80BE67    84C9            test    cl, cl                           ; 判断是否结尾
7C80BE69  ^ 75 F9           jnz     short 7C80BE64                   ; 不为0则跳转
7C80BE6B    2BC2            sub     eax, edx                         ; 用 长度+1的地址-起始+1的地址 得到真实长度
7C80BE6D    834D FC FF      or      dword ptr [ebp-4], FFFFFFFF
7C80BE71    E8 9B66FFFF     call    7C802511
7C80BE76    C2 0400         retn    4

lstrcmpA 函数的关键代码

7C80A951    66:3B0E         cmp     cx, word ptr [esi]
7C80A954    897D FC         mov     dword ptr [ebp-4], edi
7C80A957    8975 1C         mov     dword ptr [ebp+1C], esi
7C80A95A    0F85 B1000000   jnz     7C80AA11
7C80A960    66:3BCB         cmp     cx, bx
7C80A963    0F84 A8000000   je      7C80AA11
7C80A969    47              inc     edi
7C80A96A    47              inc     edi
7C80A96B    66:8B0F         mov     cx, word ptr [edi]
7C80A96E    46              inc     esi
7C80A96F    46              inc     esi
7C80A970    66:3B0E         cmp     cx, word ptr [esi]
7C80A973    897D FC         mov     dword ptr [ebp-4], edi
7C80A976    8975 1C         mov     dword ptr [ebp+1C], esi
7C80A979    0F85 92000000   jnz     7C80AA11
7C80A97F    66:3BCB         cmp     cx, bx
7C80A982    0F84 89000000   je      7C80AA11
7C80A988    47              inc     edi
7C80A989    47              inc     edi
7C80A98A    66:8B0F         mov     cx, word ptr [edi]
7C80A98D    46              inc     esi
7C80A98E    46              inc     esi

这个函数后面基本就是这段代码的复制粘贴。

这个反汇编有点蠢,写个JNZ跳回去不就行了。

懒得写注释了,看得懂的自然懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值