python写的第一个注册机

 本文是从看雪上学习的。网址如下:http://bbs.pediy.com/showthread.php?threadid=23014 。

算法分析部分还是直接从那里贴过来吧,以后备用:

===========================================分析说明=====================================================

【软件名称】Bad Sector CrackMe1
【下载地址】附件(附KeyGen源码,本文和CrackMe1)
【应用平台】Win9x/NT/2000/XP
【软件大小】10K
【软件限制】没有。
【保护方式】用户名+序列号
【破 解 者】andy00
【破解难度】1/10
【破解声明】只是为了熟悉逆向工程。
【破解工具】OllyDbg,ResHacker,Windows自带计算器
【注册机下载】仅提供源代码,支持共享软件
【软件简介】My firts Crackme..ahh.This one is damn easy and I expect from anyoneto create keygen 
            for it, but if you cant code one,it would be enough to understand how it calculates real serial. 
            Enjoy btw. it's not packed/protected.   -Bad Sector
            
            
;======================================================================================================
【分析过程】

为了熟悉逆向工程,静态分析能力,不调试

1、 直接用OllyDbg反汇编,无壳;

2、 在ResHacker看到用户名栏ID为C8,注册码栏为C9

3、 在OllyDbg查找输入函数GetWindowText和GetDlgItemText,顺利地找到了GetDlgItemText,
    找到nIDDlgItem(要获取字符串的控件的ID)参数为03EB的那一个,这个GetDlgItemText应该就是获取输入的注册码的地方了.
(这里说明下,我在xp sp3下是用的GetDlgItemTextA这个函数)
00401139     6A 32           push 32                            ; nMaxCount=32;
0040113B     68 F3204000     push Crackme1.004020F3             ; lpNameBuf=004020F3;
00401140     68 C8000000     push 0C8                           ; nIDDlgItem=C8;
00401145     FF75 08         push dword ptr ss:[ebp+8]
00401148     E8 DE000000     call <jmp.&USER32.GetDlgItemTextA> ; eax=GetDlgItemTextA(hDlg,nIDDlgItem,lpNameBuf,nMaxCount);
                                                                ;取用户名到004020F3,用户名字符个数放到eax
0040114D     83F8 00         cmp eax,0
00401150     0F84 99000000   je Crackme1.004011EF               ; if(eax==0) goto 004011EF(失败消息);没有输入则失败
00401156     83F8 04         cmp eax,4
00401159     0F82 90000000   jb Crackme1.004011EF               ; if(eax<4) goto 004011EF(失败消息);字符数<4失败
0040115F     33C9            xor ecx

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python是一种高级编程语言,它具有简单易学、可读性强、功能强大等特点,非常适合用于开发各种应用程序,包括注册机注册机是一种用于生成软件注册码或激活码的工具。它可以根据特定的算法和规则生成唯一的注册码,用于验证用户的合法性和授权软件的使用。 在Python中,你可以使用各种库和模块来实现注册机的功能。例如,你可以使用random库生成随机数作为注册码的一部分,使用hashlib库进行加密,使用datetime库获取当前时间等。 以下是一个简单的示例代码,用于生成一个基本的注册码: ```python import random import hashlib import datetime def generate_registration_code(username): # 生成随机数作为注册码的一部分 random_number = random.randint(1000, 9999) # 获取当前日期和时间 current_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S") # 将用户名、随机数和当前时间拼接起来 code_string = username + str(random_number) + current_time # 使用MD5进行加密 md5_hash = hashlib.md5(code_string.encode()).hexdigest() # 生成最终的注册码 registration_code = md5_hash[:16] return registration_code # 示例使用 username = "example_user" registration_code = generate_registration_code(username) print("注册码:", registration_code) ``` 请注意,这只是一个简单的示例,实际的注册机可能需要更复杂的算法和逻辑来生成更安全和可靠的注册码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值