• 过无壳E盾验证


    使用OD调试程序。我们在网上可以查阅到,E盾在无壳的情况下的特征,但是这些特征只有在无壳的情况下有效

        1.使用OD(ctrl + G)跳到401000处,

    401000

        2.右键-》中文搜索引擎-》智能搜索-》找到E盾特征字符串“EB10564D50726F7465637420626567696E00”

    E盾字符串

        3.进入特征字符串所在的地址,向上翻看,找到程序开始的地方,修改汇编代码

    image

        4.继续使用(1)(2)中的方式查找字符串,找到“XX成功,剩余时间”这段,向上找到跳转地址大于这个字符串的地址,因为跳过这个字符串表示输出,没有用到,说明是跳向了失败所以需要修改跳转代码,使其永远能够成功,下面这个是当前字符串所在的地址 0x4209F4

    登陆成功

    我们看到它跳转的地址超过了9F4,所以这个jmp就是跳向了失败

    image

    我们ctrl + a 分析可以看到,上面有一个跳转跳过了这个jmp,所以我们可以修改上面的跳转,最大程度的减小对寄存器变量的影响

    第一处jmp

    但是当我们单步向下跟的时候发现,程序会直接结束进程,存在二次验证

    image

        5.时间验证的特征为 “sub esp,0x84”,在修改汇编代码之前我们要找到一处没有代码的地方,并且选择离本身代码比较远的地方,二进制汇编 八个九“99999999”

    查找二进制字符串二进制编辑8个9

    记住8个9的首地址,ctrl + S   找到sub esp,0x84修改汇编代码

    image

    到这里E盾的网络验证就算是过了,但是,这个程序实际上还加了一个调试器检测,让我很不舒服,所以我还是通过搜索字符串的方法定位到关键代码

    非法工具

    向上翻阅汇编代码,查看是否有跳转跳过或使用这个字符串,在字符串上方的跳转就跳过了字符串,为了,让其在不论有没有调试器都可以正常运行,直接将条件跳转改为jmp

    image

    向下走发现依然有二次验证,按照上面相同的方法,直接将验证call上面的条件跳转改为jmp永远跳过,然后,在使用OD保存修改的地方,程序打开,在验证窗口随便输入一个用户名密码,就可以成功登陆,进入主界面了

  • 相关阅读:
    jdk环境变量配置
    智商太低,竟然算不出病狗神题了
    HDU 1284 钱币兑换问题 母函数、DP
    linux下实现监控进程网络带宽
    编程算法
    C語言 rand函数 进阶探讨与实现
    JDBCUtil
    iOS进阶路线以及进阶书籍
    Windows平台CUDA开发之前的准备工作
    数据库中substring的用法 CONVERT(varchar(12) , getdate(), 112 )
  • 原文地址:https://www.cnblogs.com/Crack_MY/p/12057087.html
Copyright © 2020-2023  润新知