OD之绕过序列号验证(二)
上次是修改程序的标题,大家应该感觉这只是一个起点而已,接下来我们可以尝试绕过序列号验证,这种技术应用在很多软件中,比如淘宝上要买什么的软件,商家都会发给`你一个用户名和密码,而且还有试用期什么的,这确实令我们很懊恼,但是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之绕过序列号验证(二)的更多相关文章
- OD 实验(二) - 绕过序列号验证
需要破解的程序 输入用户名和序列号,点击 Check,程序会进行校验 用 OD 打开程序 按快捷键 Ctrl+F9 跟随表达式 GetDlgItemTextA 点击 ok 在这里调用了 GetDlgI ...
- [Java] 绕过证书验证调 HTTPS 接口时报 “SSLHandshakeException: DHPublicKey does not comply to algorithm constraints”的解决办法
作者: zyl910 一.缘由 最近有在对接一个无证书的HTTPS接口时,总是收到"SSLHandshakeException: DHPublicKey does not comply to ...
- ASP.NET MVC Model验证(二)
ASP.NET MVC Model验证(二) 前言 上篇内容演示了一个简单的Model验证示例,然后在文中提及到Model验证在MVC框架中默认所处的位置在哪?本篇就是来解决这个问题的,并且会描述一下 ...
- [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 ...
- [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 ...
- [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 ...
- LeetCode(98): 验证二叉搜索树
Medium! 题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右 ...
- LeetCode第[98]题(Java):Validate Binary Search Tree(验证二叉搜索树)
题目:验证二叉搜索树 难度:Medium 题目内容: Given a binary tree, determine if it is a valid binary search tree (BST). ...
- LeetCode:验证二叉搜索树【98】
LeetCode:验证二叉搜索树[98] 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当 ...
随机推荐
- MySQL crash-safe replication(2):
MySQL数据库的成功离不开其replicaiton(复制),相对于Oracle DG和Microsoft SQL Server Log Shipping来说,其简单易上手,基本上1,2分钟内根据手册 ...
- CVE-2013-2551
目录 小白的CVE-2013-2551 分析 & 利用 0xFF 前言 0x00 环境和工具 0x01 分析POC POC 调试 0x02 利用 构造R3任意内存读写 劫持eip 利用利用 0 ...
- 乘风破浪:LeetCode真题_032_Longest Valid Parentheses
乘风破浪:LeetCode真题_032_Longest Valid Parentheses 一.前言 这也是非常有意思的一个题目,我们之前已经遇到过两个这种括号的题目了,基本上都要用到堆栈来解决,这次 ...
- windows最常用的快捷键(windows10 )
windows最常用的快捷键(windows10 ) [单指点击] 单击/双击,相当于鼠标左键. [单指滑动] 控制光标移动. [单指拖动] 相当于按下鼠标左键移动鼠标. [双指点击] 菜单键,相当于 ...
- beta冲刺————第一天(1/5)
人员的再次分配: 调走人员:陈裕鹏(原来在本队伍主要进行文章推荐算法的设计) 调入人员:陈邡(原Dipper团队,负责游戏内容的策划案,以及做一些后端的探索工作.) 现队员工作划分: 王国华,吴君毅, ...
- 团队作业6--展示博客(Alpha版本)
一.团队展示: 1.队名:软件1412--博客管理系统 2.队员学号(标记组长) 曾海明(组长):201421122036 周雅静(组员):201421122003 王珏(组员):2014211 ...
- Django商城项目笔记No.15用户部分-用户中心邮箱验证
首先增加前端页面success_verify_email.html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- 详解coredump
一,什么是coredump 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要 ...
- 20165318 2017-2018-2《Java程序设计》课程总结
20165318 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 每周作业链接汇总 预备作业1:我期望的师生关系 预备作业2:C语言基础调查和java学习展望 预 ...
- pam_frpintd.so 错误修复
PAM unable to dlopen(/lib64/security/pam_fprintd.so): /lib64/security/pam_fprintd.so: cannot open sh ...