一.查壳



结果:vb写的,并且无壳

二.运行程序



发现了这个程度调用了vb调用窗口的api。这时有两种方式:

1.再重新调试,运行到有窗口的时候,F12暂停,按ctrl+K,查看dll调用,再数据窗口跟随进入,相应的汇编。

2.中文智能搜索找字符串

以上两种,可以自由选择,哪个方便用哪个。

三.找到对应的字符串后,看看哪里有跳转



找到了这个跳转那么直接改成nop或者jmp,就爆破成功,没什么技术含量讲道理。。

二.注册机算法分析(这个没办法说,自己跟着汇编一步一步的来的,再结合api)耗费时间

我分析思路是,先找到正确的注册码是什么,在向上调试,哪个地方生成了正确的注册码的一部分,跟着汇编一步一步来调试。

注册机代码python版

usename=input("请输入名字")
ulen=len(usename)
tmp=0x17CFB
print(ord(usename[0]))
after=ulen*tmp+ord(usename[0])
print(int(after))

课前总结,这个花费了很多时间,看了很多博客,事实上爆破是很简单的,而分析算法,理解每一步在干什么,从而将注册机写出来,才是我们的最终学习的目标,查阅了vb的api,如果直接跳进去看汇编,感觉就是自己的汇编水平不够,正向的函数,逆向反汇编出来又是怎么样的,正向和逆向脱离不开。

160crackme002的更多相关文章

  1. [反汇编练习] 160个CrackMe之002

    [反汇编练习] 160个CrackMe之002. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

随机推荐

  1. 【错误解决】The prefix "context" for element "context:component-scan" is not bound

    在配置spring相关的applicationContext.xml文件时报以上错误 原因是缺失context的namespace. http://www.springframework.org/sc ...

  2. 优秀电路资料--- IOT方案

    完整的IOT方案 http://www.cirmall.com/circuit/4117/%E3%80%90%E5%BC%80%E6%BA%90%E3%80%91%E5%AE%8C%E6%95%B4% ...

  3. mysql数据库-备份与还原-Percona XtraBackup 2.4备份工具使用

    目录 xtrabackup 特点 备份生成的相关文件 xtrabackup 安装 xtrabackup 用法 1 备份 2 预备份 3 还原 4 其他 还原注意事项 xtrabackup实现完全备份及 ...

  4. AlertDailog中的which问题

    在做一个AlertDialog的点击事件设置的时候: AlertDialog.Builder(this).apply { var numberIndex = 0 setTitle("choo ...

  5. 1. 回顾Servlet

    回顾Servlet 创建web工程 servlet-api:http://dwz.date/aTGa 编写Servlet import javax.servlet.ServletException; ...

  6. node.js学习(4)事件

    1 导入事件库

  7. TensorFlow之keras.layers.Conv2D( )

    keras.layers.Conv2D( ) 函数参数 def __init__(self, filters, kernel_size, strides=(1, 1), padding='valid' ...

  8. MindSpore模型推理

    MindSpore模型推理 如果想在应用中使用自定义的MindSpore Lite模型,需要告知推理器模型所在的位置.推理器加载模型的方式有以下三种: 加载本地模型. 加载远程模型. 混合加载本地和远 ...

  9. Lidar激光雷达与Radar雷达

    Lidar激光雷达与Radar雷达 自动驾驶技术正迅速成为汽车工业的驱动力.来自全球的汽车制造商正在与Google等顶级高科技巨头以及其他知名初创公司合作,共同开发下一代自动驾驶汽车.中国也开辟了自动 ...

  10. 菜鸟刷题路:剑指 Offer 09. 用两个栈实现队列

    剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的 ...