170606 逆向-CrackMe之015
来源:互联网 发布:淘宝女模特好漂亮 编辑:程序博客网 时间:2024/05/24 07:32
1625-5 王子昂 总结《2017年6月6日》 【连续第248天总结】
A.CrackMe(15)
B.今天的一星又有点太简单了╮(╯_╰)╭不过第一次爆破掉NAG,而且还是绕了一下的,还是记一下
拖入PEiD,无壳VB5
运行,首先跳出一个Nag窗口,然后是Serial
先处理Nag,因为和001的无边框计时7s不同,直接是一个MsgBox
那思路很明显,暂停后ALT+K找到调用位置,NOP掉
然后运行。嗯?直接结束了
因为以前爆NAG的时候出现过错误,记得是在call之前push进去的参数没被函数内部pop掉,因此导致内存错误
这次虽然没有报内存错误,但也可能是被忽略掉异常了吧?试试把前面的参数全部NOP掉
再运行,仍然直接结束
那么有两种可能,一种是下文通过某种方法检测是否弹窗,例如取得弹窗的返回值之类的
另一种是弹窗的下一步才是主程序,既应该跟进去在内部处理
思考了一下,call的是VB库的MsgBox,不太可能是后者
于是上下翻翻代码看看,发现后面有一个vbaVarTstEq的API,后面在跳转分支中又有一个vbaEnd
那很明显,这个地方应该是通过某种方法判断是否弹窗成功,然后再继续运行或End
将两个判断都NOP掉,再运行,爆破成功
Serial就很简单了,在错误提示的弹窗时同样暂停后找到MsgBox的call
上下翻翻,很容易发现了正确文本,在它的上方有一个vbaStrCmp,再上方甚至直接有一串字符串显示出来了“2G83G35Hs2”
看起来就很像Serial嘛,输入试试,成功
上次014用VB Decompiler反编译出的代码很混乱可能是因为VB Decompiler比较适合P-CODE伪编译,而书上说VB的自然编译更适合用SmartCheck来逆向。研究了一下好像不支持WIN7以后的版本,只能在XP中动。兼容模式运行也没有用,可能直接拖个XP的虚拟机来搞了……
C.明日计划
计算思维第二章
- 170606 逆向-CrackMe之015
- 170531 逆向-CrackMe之007
- 170601 逆向-CrackMe之008
- 170602 逆向-CrackMe之009
- 170604 逆向-CrackMe之013
- 170604 逆向-CrackMe之014
- 170610 逆向-CrackMe之019
- 170613 逆向-CrackMe之023
- 170617 逆向-CrackMe之024
- 170619 逆向-CrackMe之033
- 170620 逆向-CrackMe之034
- 170621 逆向-CrackMe之027
- 170625 逆向-Crackme之010
- 170626 逆向-Crackme之005
- 171026 逆向-Patch(CrackMe之41)
- IDA Pro逆向实战之Crackme(简单篇)
- 序列号型CrackMe逆向之OD技巧篇
- 序列号型CrackMe逆向之IDA技巧篇
- 折半插入排序
- 如何创建快速联系人标记
- [Leetcode]_32 Longest Valid Parentheses
- Scala程序设计原则:Least Power
- Kotlin笔记(七)类成员(属性,内部类,匿名内部类)
- 170606 逆向-CrackMe之015
- 项目中身份证有效期的判断规则
- 现代软件工程-构建之法(第三单元)
- 图形性能和网络性能(对UPD性能有实测数据支持)
- 聚类个数的判断
- SSH物流开发系统设计:业务人员的增删改查
- windows下配置mycat,实现mysql数据库的读写分离!
- POJ-1201 (差分约束系统)
- SpringMVC 拦截器