初学破解,分享寻找注册码过程
本帖最后由 lmze2000 于 2015-4-27 14:18 编辑52Pojie的官方入门教学培训,第一期不有赶上。就在论坛里面先自学基础的教程,我算是个半新手,边自学边摸索,多少有些小收获。刚才看见群里有人求一个软件的破解,
就试着来偿试一下,结果还碰对了,把过程写下来,分享给和我一样在辛苦学习的同学们。-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第一次在52上发贴分享自己的喜悦,破解这东西看着给人高大上很神秘的,很多人在学的过程中,没有汇编的基础。看教程没有搞定就放弃了。
咱们刚开始就找容易好破的软件,,别给难倒吓跑:)
补充说明下:替换机器码那里,那个就是在之前的断点处,向上翻,一般是看汇编的代码里面有Local.2这样的语句,就试着下断,这表示有变量的赋值过程。(备注,local后面的数字不一定是2.)一般变单步F8,变查看寄存器值的变化。
我是在向上追踪出去一大段后才发现的,先是发现了注册码,然后又往上追踪,看见了机器码。由于不会写内存注册机,就用笨方法,看到机器码出现在EAX寄存器里面,就手动转到数据区域那里,修改机器码的数据。
后记,后来在论坛上看见用Keymake制作内存注册机的方法,也比较简单,找到push eax那条语句,,把有机器码的地址记下来,然后中断1次,长度1
【破解工具】OllyDbg
【软件名称】联系人生成器2.0
【下载地址】文件来自群共享, 上传到百度云地址:http://pan.baidu.com/s/1eQxVtDo
【加壳信息】无壳
【软件简介】看样子是生成各地手机信息的一个软件,生成VCF格式的。
1、使用Peid查壳,显示无壳。使用OD载入软件,程序停留在入口处(OEP),根据所学,常规套路是用查找--->搜索Ascii字符串,看有没有什么注册成功、注册失败之类的提示。
2、在汇编区右键,在弹出的菜单中选择中文搜索引挚-->搜索Ascii码,在搜索到的字符串中寻找注册成功、注册失败的提示信息。根据提示信息的位置,来寻找程序的关键跳转地址,
用来爆破掉,或者找出注册码。由于这个练手的程序是明码比较,比较适合刚学破解的新生,正好拿来让我们折磨:){:1_918:}
上面截图就是查找字符串的位置。
3、转到汇编界面,在注册成功、注册失败处前2段地址处进行下断点,(按F2),2处地址分别为
004084CF|.E8 2C1E0000 call 联系人生.0040A300
004084D4|.83C4 04 add esp,0x4
004084D7|>68 01000100 push 0x10001
004084DC|.68 C61D0106 push 0x6011DC6
004084E1|.68 C51D0152 push 0x52011DC5
004084E6|.68 04000080 push 0x80000004 ;注册成功的提示
004084EB|.6A 00 push 0x0
004084ED|.68 A8C64C00 push 联系人生.004CC6A8 ;温馨提示:
----------------------------------------------------------------------------------------------------------
00408540|.83C4 1C add esp,0x1C
00408543|.E9 45000000 jmp 联系人生.0040858D ;在这里看见有个jmp无条件跳转,是跳过失败的
00408548|>68 01000100 push 0x10001 ;这里有一个从上方过来的大跳
0040854D|.68 C61D0106 push 0x6011DC6
00408552|.68 C51D0152 push 0x52011DC5
00408557|.68 04000080 push 0x80000004
0040855C|.6A 00 push 0x0
0040855E|.68 A8C64C00 push 联系人生.004CC6A8 ;温馨提示:
00408563|.68 01030080 push 0x80000301
00408568|.6A 00 push 0x0
0040856A|.68 30000000 push 0x30
0040856F|.68 04000080 push 0x80000004
00408574|.6A 00 push 0x0
00408576|.68 BEC64C00 push 联系人生.004CC6BE ;注册失败!
0040857B|.68 04000000 push 0x4
----------------------------------------------------------------------------------------------------------
4、下完断点,按F9试着跑一下程序,,在点生成VCF的时候,跳出注册窗口,点击注册,程序断在了00408548处,
同时发现EBX寄存器有那么一串Ascii码,长得好像注册码呀,把它复制出来看看。
0019EB80 052A2FE8ASCII "77988D0363808437E49133371207B753"
5、再一次的F9运行起程序,将刚才的那串 77988D0363808437E49133371207B753 输入进注册码中,点一下注册看看效果。
看来那串是真正的注册码了。虽然感觉这个软件注册的比较简单,可是新手就应该从这样简单的小软件来练手,增强信心,一点点的成长起来。
由于不会汇编,也看不懂算法,不知道这个注册码是怎么计算出来的。又试着在注册失败上方的一个大跳转处,往前跟踪了一下,分别发现了2个关键Call,
一个是生成机器码,一个是生成注册码的Call,不会写注册机,就用笨方法,找到生成机器码的Call,下一条语句,然后修改EAX的值,来根据修改的机器码生成注册码。
00408206|.B8 14504B00 mov eax,联系人生.004B5014
0040820B|>50 push eax
0040820C|.68 01000000 push 0x1
00408211|.BB 70B34000 mov ebx,联系人生.0040B370
00408216|.E8 D9200000 call 联系人生.0040A2F4
0040821B|.83C4 10 add esp,0x10
0040821E|.8945 F8 mov ,eax
00408221|.8B5D FC mov ebx,
00408224|.85DB test ebx,ebx
00408226|.74 09 je X联系人生.00408231
00408228|.53 push ebx
简短无含量的小破解心得分享到这里,希望这成功的第一次,为接下来的努力打下基础:)
sgh2zlx 发表于 2015-4-27 11:05
请教楼主两个问题:1.注册成功字符上面的push断电怎么定下来是那个push2追马过程中如何修改语句才能达 ...
那个就是在之前的断点处,向上翻,一般是看汇编的代码里面有Local.2这样的语句,就试着下断,这表示有变量的赋值过程。(备注,local后面的数字不一定是2.)一般变单步F8,变查看寄存器值的变化。
我是在向上追踪出去一大段后才发现的,先是发现了注册码,然后又往上追踪,看见了机器码。 请教楼主两个问题:1.注册成功字符上面的push断电怎么定下来是那个push2追马过程中如何修改语句才能达到您说的目的,就是这句教程不懂“找到生成机器码的Call,下一条语句,然后修改EAX的值,来根据修改的机器码生成注册码。”勿笑 我是超级菜 如果不是明文密码 你怎么办呢? 围观 虽然什么都看不懂 有意识啊
y376694236 发表于 2015-4-26 20:28
如果不是明文密码 你怎么办呢?
不是明文的,就只能找到关键跳,爆破了。现在就是摸索着学,不会的太多了{:1_907:}
我好像看见了Hmily,好像看见过他写的脱壳的教程。 我一直不会找注册码,因为觉得爆破貌似简单些,无论输入什么都是成功,觉得还挺好用的 基本不知道,还是感谢楼主! 看半天 没看懂 英文不好害死人 带上我可好?