美文网首页
《第3期-01 图片窗体CM》学习笔记

《第3期-01 图片窗体CM》学习笔记

作者: 听说我在混吃等死 | 来源:发表于2018-10-13 20:50 被阅读0次

    这集视频中是破解一个CM。
    一、方法一
    1、运行软件,看看它是怎么展示的


    输入假码

    2、因为这是易语言编写的,所以可以使用专门的工具——"E-Debug Events "。在E-Debug Events打开这个软件 ,在软件中输入假码点击注册,这时E-Debug Events 就会记录出事件发生的内存地址


    001.png

    把最后一个事件的地址004010CB记下来
    3、载入OD运行,来到上一步中找到的地址,下断点后输入假码
    这里就是点击确定时的事件处理代码了。F8向下分析很快就找到了关键跳


    关键跳

    把关键跳改为jmp 004011BF就行了。
    二、方法二
    这个出错提示并不是MessageBox,所以不能下MessageBox的API断点。但是,软件是要读取输入的验证码的,这时会调用GetWindowText这个API。于是,我们可以对GetWindowText下API断点
    1、载入OD,运行起来,对GetWindowTextA下断点,


    下断点

    2、输入假码后,OD会把软件断下来,此时返回程序领空,


    004.png

    F8单步进行分析,显然没有找到合适的跳转,那么就跳出这个call,返回到上一层继续寻找。反复多次返回上一层call后,终于找到了关键跳,


    关键跳
    把关键跳改为jmp 004011BF就行了。
    这个方法是通用方法,不只是对于易语言程序有效。

    三、杂项
    1、期间,想通过易语言的文本比较来破解,可是在软件中根本找不到下面这些:

    8B 54 24 04 8B 4C 24 08 85 D2 75 0D 33 C0 85 C9 74 06 80 39 00 74 01 48 C3 85 C9 75 09 33 C0
    

    无奈,只好放弃了。
    2、直接下按钮事件的断点,会直接找到事件发生的代码,从而也能够很快找到关键跳。
    3、没有去修改关键跳,而是找了关键call。


    关键call

    关键call的返回值eax给了local.4,那么我想到是对关键call进行修改,直接返回1。可是对关键call就行修改后的程序无法运行,只好这样改了:不用关键call的返回值了,而是直接把1给了local.4。


    修改

    相关文章

      网友评论

          本文标题:《第3期-01 图片窗体CM》学习笔记

          本文链接:https://www.haomeiwen.com/subject/aaqsaftx.html