• 重庆市璧山区:“2+N”联合调解新模式 2019-06-15
  • 考试即将结束 家长望眼欲穿【高清组图】【2】 2019-06-12
  • 发改委:乡村振兴战略规划修改完善后将报请印发实施 2019-06-10
  • 年轻人式油腻:无所事事 折寿损福 2019-06-10
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-06-04
  • APUS创始人李涛:我凭什么培养出全球发展最快的“独角兽” 2019-06-04
  • 中国有望成亚洲最大智能家居市场 2019-06-01
  • 发改委回应网购包装垃圾渐多:将推广可循环物流设施 2019-05-31
  • 那你说说看,哪个国家什么时候是由劳动者主导的?[哈哈] 2019-05-31
  • 福利!我国最大内陆淡水湖博斯腾湖风光壁纸出炉 2019-05-27
  • 《四部医典》入选《世界记忆亚太地区名录》 2019-05-27
  • 紫光阁中共中央国家机关工作委员会 2019-05-27
  • 让中国高铁领跑世界——我国高铁装备业唯一女总工程师梁建英 2019-05-26
  • 中央和国家机关工委部署开展br“不忘初心,重温入党志愿书”主题党日活动 2019-05-07
  • 四川大熊猫宝宝诞生 熊猫基地人气旺 2019-05-03
  • 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|河南22选5 www.cphg5.com

     找回密码
     注册[Register]

    QQ登录

    只需一步,快速开始

    搜索
    查看: 1191|回复: 13
    上一主题 下一主题

    查河南22选5开奖结果: [原创] 160个Crackme之025学习笔记

      [复制链接]
    跳转到指定楼层
    楼主
    海天一色001 发表于 2019-6-11 09:28 回帖奖励
    本帖最后由 海天一色001 于 2019-6-11 09:30 编辑

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



    肯定是利用时间控件,5秒后才能继续,标题栏上显示要杀掉这个窗口,这也是河南22选5的第一个要求了:
    点击“Continue"按键,程序进入第二个窗口:

    点击“About”按钮,又出现一个窗口,基本没什么用处:

    输入“1234567890”,点击”Check“按钮,弹出错误提示框来,有提示应该就好办:

    第一步、查壳:

    程序用VB5.0编写,无壳:
    第二步,杀NAG
    VB程序,还是使用VB Decompiler来反编译一下:

    仔细从VB Decompiler中查看,分别点击左边Forms组中的3个Form,从右边找不到是谁先启动的,但能看出来Form1是主程序窗口,Form2是NAG窗口,Form3是About窗口;
    再点击Code中的3个Form,这下可以看到Form1有个Form_Load_405905,从右边窗口中看到了程序启动的参数:

    其中,
    loc_00405948: Me.Visible = False
    loc_00405986: Form2.Visible = True
    00405948处Form1设为隐藏,Form2设为显示。那么在这两处将它们反过来不就行了吗?

    根据这个思路,将程序加载入OD,然后Ctrl+G,输入405948,点击“OK”,程序来到00405948处:
    观察00405948和00405986两处代码,分别为“FF96 BC010000”和“FF90 BC010000”,只错一个,那么我将“6”和“0”改一下看看:

    修改后反汇编命令中eax和esi两个进行了对调:

    将修改的内容保存到可执行文件CodeZero.1.killnag.exe,运行一下,不行,出错了!

    大概意思是窗体的variable属性没设置?。?!说明我这样的修改有误,不能这样做。再返回OD,仔细查看:这两处设置参数的call会不会调用上面两句中的参数?00405945处是“6A 00”,反汇编为“push 0x0”,00405981处为“6A FF”,反汇编为“push -0x1”,一般00和FF表示true和false,但这里可能正好相反,0是false,-1是true。
    [Asm] 纯文本查看 复制代码
    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,再试一下,成功了!

    将CodeZero.1_killnag.exe加载入VB Decompiler中,查看Form_Load_405905的代码,和上面未修改前对照,正好反过来,说明这次是正确的。仔细想一下,遇到call之类给程序赋参数值时,应该向上面找一找参数从何而来。以前其实已经多次发现了这一点,但没留心,以后一定注意,少走一些弯路。

    第三步、爆破
    用VB Decompiler生成map文件,用于导入OD中作为注释:

    用OD加载CodeZero.1_killnag.exe,再用中文智能搜索查找字符串:

    很容易找到了成功和失败的提示内容。双击0040577B这一行来到CPU窗口,查看程序代码:

    在0040577B上方的0040576E处看到一个跳转命令“je short CodeZero.0040579A”跳过了成功提示,那么nop掉它试一试:

    将修改后的内容保存到可执行文件CodeZero.1_killnag_nop.exe,运行一下,输入“1234567890”,点击“Check”按钮,弹出正确提示框,爆破完成。

    第四步、追码
    撤消修改,观察代码情况: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) ,含CM原程序、爆破后的程序、OD的调试文件等。
    百度链接是://pan.baidu.com/s/1skMkJY9,密码: 86pm,160个CM、我已练习过的前25个crackme程序(不含012)都在里面。

    免费评分

    参与人数 2吾爱币 +1 热心值 +2 收起 理由
    小菜鸟一枚 + 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)。
    推荐
    byh3025 发表于 2019-6-13 16:22
    海天一色001 发表于 2019-6-13 16:05
    用VB Decompiler生成的map文件,导入OD后相当于自动生成了OD的注释,可以节省部分时间。使用方法是在OD的 ...

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

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

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

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

    RSS订阅|小黑屋|联系我们|河南22选5 ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

    GMT+8, 2019-6-20 23:42

    Powered by Discuz!

    © 2001-2017 Comsenz Inc.

    快速回复 河南22选5 返回列表
  • 重庆市璧山区:“2+N”联合调解新模式 2019-06-15
  • 考试即将结束 家长望眼欲穿【高清组图】【2】 2019-06-12
  • 发改委:乡村振兴战略规划修改完善后将报请印发实施 2019-06-10
  • 年轻人式油腻:无所事事 折寿损福 2019-06-10
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-06-04
  • APUS创始人李涛:我凭什么培养出全球发展最快的“独角兽” 2019-06-04
  • 中国有望成亚洲最大智能家居市场 2019-06-01
  • 发改委回应网购包装垃圾渐多:将推广可循环物流设施 2019-05-31
  • 那你说说看,哪个国家什么时候是由劳动者主导的?[哈哈] 2019-05-31
  • 福利!我国最大内陆淡水湖博斯腾湖风光壁纸出炉 2019-05-27
  • 《四部医典》入选《世界记忆亚太地区名录》 2019-05-27
  • 紫光阁中共中央国家机关工作委员会 2019-05-27
  • 让中国高铁领跑世界——我国高铁装备业唯一女总工程师梁建英 2019-05-26
  • 中央和国家机关工委部署开展br“不忘初心,重温入党志愿书”主题党日活动 2019-05-07
  • 四川大熊猫宝宝诞生 熊猫基地人气旺 2019-05-03