zoukankan      html  css  js  c++  java
  • 160crackme002

    一.查壳
    在这里插入图片描述
    结果: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,如果直接跳进去看汇编,感觉就是自己的汇编水平不够,正向的函数,逆向反汇编出来又是怎么样的,正向和逆向脱离不开。

  • 相关阅读:
    leetcode--Search for a Range
    leetcode--Valid Palindrome
    leetcode--Validate Binary Search Tree
    leetcode--Count and Say
    leetcode--Partition List
    C语言atof()函数:将字符串转换为double(双精度浮点数)
    程序员与科学家的区别
    mingw编译rtmp库
    使用printf输出各种格式的字符串( 转载)
    c++使用stdint.h和inttypes.h
  • 原文地址:https://www.cnblogs.com/YenKoc/p/12779936.html
Copyright © 2011-2022 走看看