• 女友提分手小伙以死相逼 警察破门救助被划伤 2019-09-14
  • 中央环保督察组:石家庄市无极县“敷衍整改” 2019-09-13
  • [酷]中国天翻地复的变化确实惊人 2019-09-13
  • 陕西证监局发布行政处罚 两人涉内幕交易被罚30万和15万 2019-09-06
  • 江西居民年献血量从2吨增至128吨 2019-09-05
  • 赏花不用跑远 宗角禄康开得正艳 2019-09-03
  • 西藏部署“三病”筛查救治工作 2019-09-03
  • 习近平在山东考察时强调  切实把新发展理念落到实处 不断增强经济社会发展创新力 2019-09-02
  • 贯彻转型建设要求 锻造海上精兵劲旅 2019-08-29
  • 神州专车爱心助考 30城上线高考“神”助攻专车 2019-08-29
  • 工信部下架46款违规App:《神庙逃亡》上榜 2019-08-25
  • 习近平参加贵州代表团审议 2019-08-25
  • 第九届全球健康促进大会 2019-08-23
  • 网友自嘲工资拖后腿 专家:衡量个人收入需更多数据 2019-08-23
  • 科学健身有原则 牢记要点是关键 2019-08-16
  • 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|北京pk10最稳办法 www.yhhjx.com

     找回密码
     注册[Register]

    QQ登录

    只需一步,快速开始

    搜索
    查看: 2282|回复: 14

    北京pk10千里马计划: [原创] 160个Crackme之025学习笔记

      [复制链接]
    海天一色001 发表于 2019-6-11 09:28
    本帖最后由 海天一色001 于 2019-6-11 09:30 编辑

    看到025,图标显示就是一个VB程序。老规矩,先打开看看:
    001.png

    002.png
    肯定是利用时间控件,5秒后才能继续,标题栏上显示要杀掉这个窗口,这也是北京pk10最稳办法的第一个要求了:
    点击“Continue"按键,程序进入第二个窗口:
    003.png
    点击“About”按钮,又出现一个窗口,基本没什么用处:
    005.png
    输入“1234567890”,点击”Check“按钮,弹出错误提示框来,有提示应该就好办:
    004.png
    第一步、查壳:
    006.png
    程序用VB5.0编写,无壳:
    第二步,杀NAG
    VB程序,还是使用VB Decompiler来反编译一下:
    007.png
    仔细从VB Decompiler中查看,分别点击左边Forms组中的3个Form,从右边找不到是谁先启动的,但能看出来Form1是主程序窗口,Form2是NAG窗口,Form3是About窗口;
    再点击Code中的3个Form,这下可以看到Form1有个Form_Load_405905,从右边窗口中看到了程序启动的参数:
    008.png
    其中,
    loc_00405948: Me.Visible = False
    loc_00405986: Form2.Visible = True
    00405948处Form1设为隐藏,Form2设为显示。那么在这两处将它们反过来不就行了吗?
    009.png
    根据这个思路,将程序加载入OD,然后Ctrl+G,输入405948,点击“OK”,程序来到00405948处:
    观察00405948和00405986两处代码,分别为“FF96 BC010000”和“FF90 BC010000”,只错一个,那么我将“6”和“0”改一下看看:
    010.png
    修改后反汇编命令中eax和esi两个进行了对调:
    011.png
    将修改的内容保存到可执行文件CodeZero.1.killnag.exe,运行一下,不行,出错了!
    012.png
    大概意思是窗体的variable属性没设置?。?!说明我这样的修改有误,不能这样做。再返回OD,仔细查看:这两处设置参数的call会不会调用上面两句中的参数?00405945处是“6A 00”,反汇编为“push 0x0”,00405981处为“6A FF”,反汇编为“push -0x1”,一般00和FF表示true和false,但这里可能正好相反,0是false,-1是true。
    [Asm] 纯文本查看 复制代码
     北京pk10最稳办法 www.yhhjx.com 00405945  |.  6A 00         push 0x0
    00405947  |.  57            push edi
    00405948  |.  FF96 BC010000 call dword ptr ds:[esi+0x1BC]            ;  form1.visable=false
    
    00405981  |.  6A FF         push -0x1
    00405983  |.  56            push esi
    00405984  |.  8B06          mov eax,dword ptr ds:[esi]
    00405986  |.  FF90 BC010000 call dword ptr ds:[eax+0x1BC]            ;  form2.visable=true

    那么将原来修改的地方恢复,将00405945处的“6A 00”改为“6A FF”, 00405981处的“6A FF”改为“6A 00”,再将修改的所有内容保存为可执行文件CodeZero.1_killnag.exe,再试一下,成功了!
    013.png
    将CodeZero.1_killnag.exe加载入VB Decompiler中,查看Form_Load_405905的代码,和上面未修改前对照,正好反过来,说明这次是正确的。仔细想一下,遇到call之类给程序赋参数值时,应该向上面找一找参数从何而来。以前其实已经多次发现了这一点,但没留心,以后一定注意,少走一些弯路。
    014.png
    第三步、爆破
    用VB Decompiler生成map文件,用于导入OD中作为注释:
    015.png
    用OD加载CodeZero.1_killnag.exe,再用中文智能搜索查找字符串:
    016.png
    很容易找到了成功和失败的提示内容。双击0040577B这一行来到CPU窗口,查看程序代码:
    017.png
    在0040577B上方的0040576E处看到一个跳转命令“je short CodeZero.0040579A”跳过了成功提示,那么nop掉它试一试:
    018.png
    将修改后的内容保存到可执行文件CodeZero.1_killnag_nop.exe,运行一下,输入“1234567890”,点击“Check”按钮,弹出正确提示框,爆破完成。
    019.png
    第四步、追码
    撤消修改,观察代码情况:0040576E这一句指令是“je short CodeZero.0040579A”,当标志位ZF为1时跳过了成功提示,再向上查看,在00405746处有个比较指令,这里才能使ZF标志位发生改变。那么就看si和bx的值是怎么来的了。再向上一堆令人头疼的运算,看到了MSVBVM50.__vbaStrCmp函数,再向上,看到了参数是假码和真码,而注册码竟然是个明码“55555”!验证一下,在025和CodeZero.1_killnag.exe中输入“555555”,点击“Check”按键,成功提示均出现了。
    可是这里的代码令人有点迷惑,虽然知道是调用MSVBVM50.__vbaStrCmp进行的比较,把返回结果存入[eax],再把[eax]赋值给[esi],然后用一堆运算来把[esi]处理一番,最后比较[si]与[bx], ([bx]==0),为什么不直接比较[eax]是否==0来判断字符串是否相等呢?
    自己用VB写一个字符比较的程序,然后反汇编看看:
    [Visual Basic] 纯文本查看 复制代码
    Private Sub Command1_Click()
        If Text1.Text = "1234567890" Then
            MsgBox "YES"
        Else
            MsgBox "NOT"
        End If
    End Sub

    自己编写的StrCmp.exe程序反汇编过来部分代码如下:
    [Asm] 纯文本查看 复制代码
    00401BCF   . |FF15 14104000 call dword ptr ds:[<&MSVBVM60.__vbaHresultChec>;  msvbvm60.__vbaHresultCheckObj
    00401BD5   > \8B45 E8       mov eax,dword ptr ss:[ebp-0x18]
    00401BD8   .  50            push eax
    00401BD9   .  68 7C174000   push StrCmp.0040177C                           ;  1234567890
    00401BDE   .  FF15 38104000 call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]    ;  msvbvm60.__vbaStrCmp
    00401BE4   .  8BF0          mov esi,eax
    00401BE6   .  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
    00401BE9   .  F7DE          neg esi
    00401BEB   .  1BF6          sbb esi,esi
    00401BED   .  46            inc esi
    00401BEE   .  F7DE          neg esi
    00401BF0   .  FF15 88104000 call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]   ;  msvbvm60.__vbaFreeStr
    00401BF6   .  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
    00401BF9   .  FF15 8C104000 call dword ptr ds:[<&MSVBVM60.__vbaFreeObj>]   ;  msvbvm60.__vbaFreeObj
    00401BFF   .  B9 04000280   mov ecx,0x80020004
    00401C04   .  B8 0A000000   mov eax,0xA
    00401C09   .  66:3BF7       cmp si,di

    025程序部分代码如下:
    [Asm] 纯文本查看 复制代码
    00405719   .  E8 3CBAFFFF   call <jmp.&MSVBVM50.__vbaHresultCheckObj>
    0040571E   > \FF75 E8       push dword ptr ss:[ebp-0x18]                         ;  输入的假码
    00405721   .  68 A4264000   push CodeZero.004026A4                               ;  55555
    00405726   .  E8 3BBAFFFF   call <jmp.&MSVBVM50.__vbaStrCmp>                     ;  字符串比较,结果存入[eax],关键比较
    0040572B   .  8BF0          mov esi,eax                                          ;  以下是对eax的值进行处理,绕了一大圈,到cmp si,bx 结果不变
    0040572D   .  8D4D E8       lea ecx,dword ptr ss:[ebp-0x18]
    00405730   .  F7DE          neg esi                                              ;  msvbvm50.7412C350
    00405732   .  1BF6          sbb esi,esi                                          ;  msvbvm50.7412C350
    00405734   .  46            inc esi                                              ;  msvbvm50.7412C350
    00405735   .  F7DE          neg esi                                              ;  msvbvm50.7412C350
    00405737   .  E8 18BAFFFF   call <jmp.&MSVBVM50.__vbaFreeStr>
    0040573C   .  8D4D E4       lea ecx,dword ptr ss:[ebp-0x1C]
    0040573F   .  E8 0ABAFFFF   call <jmp.&MSVBVM50.__vbaFreeObj>
    00405744   .  6A 0A         push 0xA
    00405746   .  66:3BF3       cmp si,bx                                            ;  关键比较

    从00401BCF到00401C09处,与025程序中的00405719到00405746处非常相似,
    估计是反汇编时编译器自动生成的这一堆代码,基本上可以认为作用是
    cmp string1,string2
    je XXXXXXXXX
    其他的不用管就行了。
    附件 025.zip (261.94 KB, 下载次数: 2)

    免费评分

    参与人数 3吾爱币 +8 热心值 +3 收起 理由
    Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
    小菜鸟一枚 + 1 + 1 我很赞同!
    liphily + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

    查看全部评分

    本帖被以下淘专辑推荐:

    发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

     楼主| 海天一色001 发表于 2019-6-13 16:05
    byh3025 发表于 2019-6-13 13:55
    大神导出的那个map文件是怎么用的呢?教程中没有啊

    用VB Decompiler生成的map文件,导入OD后相当于自动生成了OD的注释,可以节省部分时间。使用方法是在OD的插件中有个“mapimp"插件,使用它来导入map文件(import map)。
    2.png
    byh3025 发表于 2019-6-13 16:22
    海天一色001 发表于 2019-6-13 16:05
    用VB Decompiler生成的map文件,导入OD后相当于自动生成了OD的注释,可以节省部分时间。使用方法是在OD的 ...

    嗯,学习了,谢谢你的指导
    zzcl558 发表于 2019-6-12 06:12
    学士天下 发表于 2019-6-12 07:25
    受教,谢谢!
    小菜鸟一枚 发表于 2019-6-12 10:03
    分析的很有条理,值得借鉴学习
    a921222a 发表于 2019-6-12 10:11
    我很赞同!
    神一样啲男人 发表于 2019-6-12 11:04

    谢谢分享!
    wobzhidao 发表于 2019-6-12 12:10
    这个可以有的
    李半峰 发表于 2019-6-13 00:03
    值得学习
    鲶鱼的忧郁 发表于 2019-6-13 08:55
    感谢楼主分享
    落花情 发表于 2019-6-13 09:01
    大佬厉害了
    您需要登录后才可以回帖 登录 | 注册[Register]

    本版积分规则 警告:禁止回复与主题无关内容,违者重罚!

    快速回复 收藏帖子 返回列表 搜索

    RSS订阅|小黑屋|联系我们|北京pk10最稳办法 ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2019-9-19 06:21

    Powered by Discuz!

    © 2001-2017 Comsenz Inc.

    快速回复 北京pk10最稳办法 返回列表
  • 女友提分手小伙以死相逼 警察破门救助被划伤 2019-09-14
  • 中央环保督察组:石家庄市无极县“敷衍整改” 2019-09-13
  • [酷]中国天翻地复的变化确实惊人 2019-09-13
  • 陕西证监局发布行政处罚 两人涉内幕交易被罚30万和15万 2019-09-06
  • 江西居民年献血量从2吨增至128吨 2019-09-05
  • 赏花不用跑远 宗角禄康开得正艳 2019-09-03
  • 西藏部署“三病”筛查救治工作 2019-09-03
  • 习近平在山东考察时强调  切实把新发展理念落到实处 不断增强经济社会发展创新力 2019-09-02
  • 贯彻转型建设要求 锻造海上精兵劲旅 2019-08-29
  • 神州专车爱心助考 30城上线高考“神”助攻专车 2019-08-29
  • 工信部下架46款违规App:《神庙逃亡》上榜 2019-08-25
  • 习近平参加贵州代表团审议 2019-08-25
  • 第九届全球健康促进大会 2019-08-23
  • 网友自嘲工资拖后腿 专家:衡量个人收入需更多数据 2019-08-23
  • 科学健身有原则 牢记要点是关键 2019-08-16
  • 湖南彩票网站 江苏福彩快3走势图下载 雪缘园足球彩比分直播 幸运赛车在线观看 3d试机号每日快报太湖 辽宁35选7走势图综合版 德州扑克选选802com 广西快乐10分开奖走势图 福彩3d字谜 江西快三网购平台 河北十一选五走势 新疆喜乐彩开奖信息 甘肃快三 5选5开奖结果查询 时时彩后一最牛的算法