上次是修改程序的标题,大家应该感觉这只是一个起点而已,接下来我们可以尝试绕过序列号验证,这种技术应用在很多软件中,比如淘宝上要买什么的软件,商家都会发给`你一个用户名和密码,而且还有试用期什么的,这确实令我们很懊恼,但是OD可以帮我们解决这个问题.

例如下面这个程序:

类似于这种程序,先将它拖进OD:

用户名和密码应该是属于文本的获取,这时可以了解到,在win32中,有两种比较常用的获取文本的函数:

GetDlgItemText(A W)

GetWindowText(A W)    A参数代表ASCLL码   W代表Unicode模式

CTRL+G调用表达式:(这里由于不知道它使用的哪种函数,需要一一调试,输错就没有调用该函数,这里是需要耐心的,逆向工程都是在耐心中完成的):

可以发现在这里调用了 GetDlgItemTextA,按 F2 下一个断点,然后CTRL+F2进行重加载,F9运行:

随便输入用户名和序列号,check:然后F8单步进行到如下;

出现了ASCLL码,这是我们刚才输入的序列号和用户名,{dword ptr}[ (代表两字节)>> (在汇编语言中是push压入栈后进行jmp跳转的意思)],这个是告诉我们文本的位置,然后我们继续F8调试;

这里出现了test函数,意思是测试序列号和用户名是否符合要求,eax是寄存器的函数的意思,大一上学期的时候应该有了解过一点,win32系统一定会把文本转换为32位存在eax中,je是汇编函数的一个跳转函数,判断条件是ZF=1时就跳转,

而这里我们可以修改值,将eax寄存器的值修改,或者修改je函数,让1为0,成为False,跳转不实现,因为我们不知道正确的序列号,这是跳转一定会指向错误的,或者强制填充nop函数

然后进行文件的保存:

生成为TraceMe1.exe然后可以测试一下咯;

可以发现成功了,对比源程序:

这只是开始,但是在寻找问题中解决是有趣的.

OD之绕过序列号验证(二)的更多相关文章

  1. OD 实验(二) - 绕过序列号验证

    需要破解的程序 输入用户名和序列号,点击 Check,程序会进行校验 用 OD 打开程序 按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA 点击 ok 在这里调用了 GetDlgI ...

  2. [Java] 绕过证书验证调 HTTPS 接口时报 “SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”的解决办法

    作者: zyl910 一.缘由 最近有在对接一个无证书的HTTPS接口时,总是收到"SSLHandshakeException: DHPublicKey does not comply to ...

  3. ASP.NET MVC Model验证(二)

    ASP.NET MVC Model验证(二) 前言 上篇内容演示了一个简单的Model验证示例,然后在文中提及到Model验证在MVC框架中默认所处的位置在哪?本篇就是来解决这个问题的,并且会描述一下 ...

  4. [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列

    Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary ...

  5. [LeetCode] Validate Binary Search Tree 验证二叉搜索树

    Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as ...

  6. [CareerCup] 4.5 Validate Binary Search Tree 验证二叉搜索树

    4.5 Implement a function to check if a binary tree is a binary search tree. LeetCode上的原题,请参见我之前的博客Va ...

  7. LeetCode(98): 验证二叉搜索树

    Medium! 题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右 ...

  8. LeetCode第[98]题(Java):Validate Binary Search Tree(验证二叉搜索树)

    题目:验证二叉搜索树 难度:Medium 题目内容: Given a binary tree, determine if it is a valid binary search tree (BST). ...

  9. LeetCode:验证二叉搜索树【98】

    LeetCode:验证二叉搜索树[98] 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当 ...

随机推荐

  1. Huawei DHCP 中继配置实例

    配置DHCP中继示例 组网需求 如图1,DHCP客户端所在的网段为10.100.0.0/16,而DHCP服务器所在的网段为202.40.0.0/16.需要通过带DHCP中继功能的设备中继DHCP报文, ...

  2. python的学习之路day3

    大纲 1.汉字编码 2.浅拷贝与深拷贝 3.函数 4.return 5.函数的基本参数 6.format 7.三元运算(三目运算) 8.python的内置函数 abs() all() any() bo ...

  3. [Spark Streaming_1] Spark Streaming 概述

    0. 说明 Spark Streaming 介绍 && 在 IDEA 中编写 Spark Streaming 程序 1. Spark Streaming 介绍 Spark Stream ...

  4. 【Alpha 冲刺】 12/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成app端api编写 已完成 JAVA后端跨域访问没有处理(目前已解决),导致前端localhost请求失败而误以为自己操作失误 ...

  5. PyQt5--GridLayoutMultiLine

    # -*- coding:utf-8 -*- ''' Created on Sep 13, 2018 @author: SaShuangYiBing ''' import sys from PyQt5 ...

  6. console.time方法与console.timeEnd方法

    在Node.js中,当需要统计一段代码的执行时间时,可以使用console.time方法与console.timeEnd方法,其中console.time方法用于标记开始时间,console.time ...

  7. 【转】Python操作MongoDB数据库

    前言 MongoDB GUI 工具 PyMongo(同步) Motor(异步) 后记 前言 最近这几天准备介绍一下 Python 与三大数据库的使用,这是第一篇,首先来介绍 MongoDB 吧,,走起 ...

  8. ES6标准简介之Babel转码器解说

    ES6是ECMAScript 6的简称,是JavaScript语言的下一代标准,现在基于jquery库的前端开发js所使用的标准是ES5(ECMAScript 5).ES6已于2015年6月正式发布. ...

  9. 【转】Android 4.4中播放HTML5视频<video>的Bug

    近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...

  10. ethereum/EIPs-170 Contract code size limit

    eip title author type category status created 170 Contract code size limit Vitalik Buterin Standards ...