过滤王自动输入身份证软件的追注册码的简单分析
本帖最后由 lkou 于 2011-5-8 21:06 编辑【文章标题】: 过滤王自动输入身份证软件的追注册码
【文章作者】: cu629944
【作者邮箱】: 1015636182@qq.com
【软件名称】: 过滤王自动输入身份证
【下载地址】: (前天从吾爱论坛看到的!今天才有空看!)http://u.115.com/file/t67f0c831#
【加壳方式】: Nspack
【使用工具】: PEID, OD
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
我是菜鸟哦!做个爆破给大家看看!请大牛指正哦!
先用PEID查壳,是 nsPack ver.3.x-4.1 reg by North Star - Overlay ,有附加数据!脱壳和附加数据就不演示了!
脱壳和附加数据的处理网上一搜一大堆哦!
现在开始破解啦!
用OD载入,右键==》超级字符串参考==》查找ASCII码,在打开的窗口中看到 krnln.fnr和 krnln.fne两个函数库!所以
可以判定为易语言的程序!双击进入krnln.fne函数库!向下面拉,找到 0040150E|.FFD0 CALL EAX,看到
CALL EAX,在0040150E这里下断,F9运行,段在了这里,F7跟进,F8单步走,到达这里
100297A6 E8 04F5FFFF CALL krnln.10028CAF,F7跟进去,向下面翻,找到JMP EAX,也就是10028CE3,F4运行
到这里,然后F8步过,然后邮件==》分析==》删除模块代码。好了,现在可以查找字符串了!“找到软件真正成功!可以
无限使用该软件!”这串字符串,双击进去!
00419699 58 POP EAX
0041969A 8945 F4 MOV DWORD PTR SS:,EAX
0041969D 6A FF PUSH -1
0041969F 6A 08 PUSH 8
004196A1 68 54100116 PUSH 16011054
004196A6 68 4D100152 PUSH 5201104D
004196AB E8 B40B0000 CALL 2.0041A264
004196B0 83C4 10 ADD ESP,10
004196B3 8945 F0 MOV DWORD PTR SS:,EAX
004196B6 8B45 F4 MOV EAX,DWORD PTR SS:
004196B9 50 PUSH EAX
004196BA FF75 F0 PUSH DWORD PTR SS:
004196BD E8 25C8FFFF CALL 2.00415EE7
004196C2 83C4 08 ADD ESP,8
004196C5 83F8 00 CMP EAX,0
004196C8 B8 00000000 MOV EAX,0
004196CD 0F94C0 SETE AL
004196D0 8945 EC MOV DWORD PTR SS:,EAX
004196D3 8B5D F0 MOV EBX,DWORD PTR SS:
004196D6 85DB TEST EBX,EBX
004196D8 74 09 JE SHORT 2.004196E3
004196DA 53 PUSH EBX
004196DB E8 6C0B0000 CALL 2.0041A24C
004196E0 83C4 04 ADD ESP,4
004196E3 837D EC 00 CMP DWORD PTR SS:,0
004196E7 0F84 49000000 JE 2.00419736
004196ED 6A 00 PUSH 0
004196EF 68 55944000 PUSH 2.00409455 ; 本机已经认证成功!此注册只限于本机使用!
004196F4 6A FF PUSH -1
004196F6 6A 08 PUSH 8
004196F8 68 4F100116 PUSH 1601104F
004196FD 68 4D100152 PUSH 5201104D
00419702 E8 510B0000 CALL 2.0041A258
00419707 83C4 18 ADD ESP,18
0041970A 6A 00 PUSH 0
0041970C 68 01934000 PUSH 2.00409301 ; 软件认证成功!可无限时使用该软件!
00419711 6A FF PUSH -1
00419713 6A 08 PUSH 8
00419715 68 72100116 PUSH 16011072
0041971A 68 4C000152 PUSH 5201004C
0041971F E8 340B0000 CALL 2.0041A258
00419724 83C4 18 ADD ESP,18
00419727 B8 01000000 MOV EAX,1
0041972C E9 49000000 JMP 2.0041977A
00419731 E9 44000000 JMP 2.0041977A
00419736 6A 00 PUSH 0
00419738 68 7E944000 PUSH 2.0040947E ; 本机认证失败!请检查注册码和认证硬件是否正确!
0041973D 6A FF PUSH -1
0041973F 6A 08 PUSH 8
00419741 68 4F100116 PUSH 1601104F
00419746 68 4D100152 PUSH 5201104D
0041974B E8 080B0000 CALL 2.0041A258
00419750 83C4 18 ADD ESP,18
00419753 6A 00 PUSH 0
00419755 68 29934000 PUSH 2.00409329 ; 程序未注册,或者注册信息不正确!未注册用户每次只能使用20分钟,程序将自动退出!
0041975A 6A FF PUSH -1
0041975C 6A 08 PUSH 8
0041975E 68 72100116 PUSH 16011072
00419763 68 4C000152 PUSH 5201004C
00419768 E8 EB0A0000 CALL 2.0041A258
0041976D 83C4 18 ADD ESP,18
00419770 B8 00000000 MOV EAX,0
00419775 E9 00000000 JMP 2.0041977A
0041977A 50 PUSH EAX
0041977B 8B5D FC MOV EBX,DWORD PTR SS:
0041977E 85DB TEST EBX,EBX
00419780 74 09 JE SHORT 2.0041978B
00419782 53 PUSH EBX
00419783 E8 C40A0000 CALL 2.0041A24C
00419788 83C4 04 ADD ESP,4
0041978B 8B5D F4 MOV EBX,DWORD PTR SS:
0041978E 85DB TEST EBX,EBX
00419790 74 09 JE SHORT 2.0041979B
00419792 53 PUSH EBX
00419793 E8 B40A0000 CALL 2.0041A24C
00419798 83C4 04 ADD ESP,4
0041979B 58 POP EAX
0041979C 8BE5 MOV ESP,EBP
0041979E 5D POP EBP
0041979F C3 RETN
来到0041970C 这里,向上面找找到段首004194DA,下F2断点
004194DA 55 PUSH EBP
004194DB 8BEC MOV EBP,ESP
004194DD 81EC 18000000 SUB ESP,18
004194E3 C745 FC 0000000>MOV DWORD PTR SS:,0
004194EA C745 F8 0000000>MOV DWORD PTR SS:,0
004194F1 C745 F4 0000000>MOV DWORD PTR SS:,0
004194F8 6A FF PUSH -1
004194FA 6A 13 PUSH 13
004194FC 68 50100116 PUSH 16011050
00419501 68 4D100152 PUSH 5201104D
00419506 E8 590D0000 CALL 2.0041A264
0041950B 83C4 10 ADD ESP,10
0041950E 68 01030080 PUSH 80000301
00419513 6A 00 PUSH 0
00419515 50 PUSH EAX
00419516 68 0E000100 PUSH 1000E
0041951B 68 50100116 PUSH 16011050
00419520 68 4D100152 PUSH 5201104D
00419525 68 02000000 PUSH 2
0041952A BB BC030000 MOV EBX,3BC
0041952F E8 2A0D0000 CALL 2.0041A25E
00419534 83C4 1C ADD ESP,1C
00419537 8945 EC MOV DWORD PTR SS:,EAX
0041953A 68 04000080 PUSH 80000004
0041953F 6A 00 PUSH 0
00419541 8B45 EC MOV EAX,DWORD PTR SS:
00419544 85C0 TEST EAX,EAX
00419546 75 05 JNZ SHORT 2.0041954D
00419548 B8 EB914000 MOV EAX,2.004091EB
0041954D 50 PUSH EAX
0041954E 68 01000000 PUSH 1
00419553 BB 68010000 MOV EBX,168
00419558 E8 010D0000 CALL 2.0041A25E
0041955D 83C4 10 ADD ESP,10
00419560 8945 E8 MOV DWORD PTR SS:,EAX
00419563 8B5D EC MOV EBX,DWORD PTR SS:
00419566 85DB TEST EBX,EBX
00419568 74 09 JE SHORT 2.00419573
0041956A 53 PUSH EBX
0041956B E8 DC0C0000 CALL 2.0041A24C
00419570 83C4 04 ADD ESP,4
00419573 8B45 E8 MOV EAX,DWORD PTR SS:
00419576 50 PUSH EAX
00419577 8B5D FC MOV EBX,DWORD PTR SS:
0041957A 85DB TEST EBX,EBX
0041957C 74 09 JE SHORT 2.00419587
0041957E 53 PUSH EBX
0041957F E8 C80C0000 CALL 2.0041A24C
00419584 83C4 04 ADD ESP,4
00419587 58 POP EAX
00419588 8945 FC MOV DWORD PTR SS:,EAX
0041958B 68 EB914000 PUSH 2.004091EB
00419590 FF75 FC PUSH DWORD PTR SS:
00419593 E8 4FC9FFFF CALL 2.00415EE7
00419598 83C4 08 ADD ESP,8
0041959B 83F8 00 CMP EAX,0
0041959E 0F85 1F000000 JNZ 2.004195C3
004195A4 B8 A1934000 MOV EAX,2.004093A1 ; 54ds
004195A9 50 PUSH EAX
004195AA 8B5D FC MOV EBX,DWORD PTR SS:
004195AD 85DB TEST EBX,EBX
004195AF 74 09 JE SHORT 2.004195BA
004195B1 53 PUSH EBX
004195B2 E8 950C0000 CALL 2.0041A24C
004195B7 83C4 04 ADD ESP,4
004195BA 58 POP EAX
004195BB 8945 FC MOV DWORD PTR SS:,EAX
004195BE E9 00000000 JMP 2.004195C3
004195C3 33C9 XOR ECX,ECX
004195C5 8D45 F8 LEA EAX,DWORD PTR SS:
004195C8 8BD8 MOV EBX,EAX
004195CA 41 INC ECX
004195CB 51 PUSH ECX
004195CC 53 PUSH EBX
004195CD 890B MOV DWORD PTR DS:,ECX
004195CF 83F9 04 CMP ECX,4
004195D2 0F8F 91000000 JG 2.00419669
004195D8 68 A6934000 PUSH 2.004093A6 ; zwbktx
004195DD FF75 FC PUSH DWORD PTR SS:
004195E0 68 AD934000 PUSH 2.004093AD ; tacdqc
004195E5 B9 03000000 MOV ECX,3
004195EA E8 2AD7FFFF CALL 2.00416D19
004195EF 83C4 0C ADD ESP,0C
004195F2 8945 F0 MOV DWORD PTR SS:,EAX
004195F5 68 04000080 PUSH 80000004
004195FA 6A 00 PUSH 0
004195FC 8B45 F0 MOV EAX,DWORD PTR SS:
004195FF 85C0 TEST EAX,EAX
00419601 75 05 JNZ SHORT 2.00419608
00419603 B8 EB914000 MOV EAX,2.004091EB
00419608 50 PUSH EAX
00419609 68 01000000 PUSH 1
0041960E BB 98010000 MOV EBX,198
00419613 E8 460C0000 CALL 2.0041A25E
00419618 83C4 10 ADD ESP,10
0041961B 8945 EC MOV DWORD PTR SS:,EAX
0041961E 8B5D F0 MOV EBX,DWORD PTR SS:
00419621 85DB TEST EBX,EBX
00419623 74 09 JE SHORT 2.0041962E
00419625 53 PUSH EBX
00419626 E8 210C0000 CALL 2.0041A24C
0041962B 83C4 04 ADD ESP,4
0041962E 8D45 EC LEA EAX,DWORD PTR SS:
00419631 50 PUSH EAX
00419632 E8 4BECFFFF CALL 2.00418282
00419637 8945 E8 MOV DWORD PTR SS:,EAX
0041963A 8B5D EC MOV EBX,DWORD PTR SS:
0041963D 85DB TEST EBX,EBX
0041963F 74 09 JE SHORT 2.0041964A
00419641 53 PUSH EBX
00419642 E8 050C0000 CALL 2.0041A24C
00419647 83C4 04 ADD ESP,4
0041964A 8B45 E8 MOV EAX,DWORD PTR SS:
0041964D 50 PUSH EAX
0041964E 8B5D FC MOV EBX,DWORD PTR SS:
00419651 85DB TEST EBX,EBX
00419653 74 09 JE SHORT 2.0041965E
00419655 53 PUSH EBX
00419656 E8 F10B0000 CALL 2.0041A24C
0041965B 83C4 04 ADD ESP,4
0041965E 58 POP EAX
0041965F 8945 FC MOV DWORD PTR SS:,EAX
00419662 5B POP EBX
00419663 59 POP ECX
00419664^ E9 61FFFFFF JMP 2.004195CA
00419669 83C4 08 ADD ESP,8
0041966C 8B45 FC MOV EAX,DWORD PTR SS:
0041966F 85C0 TEST EAX,EAX
00419671 74 15 JE SHORT 2.00419688
00419673 50 PUSH EAX
00419674 8BD8 MOV EBX,EAX
00419676 E8 33D6FFFF CALL 2.00416CAE
0041967B 40 INC EAX
0041967C 50 PUSH EAX
0041967D E8 D00B0000 CALL 2.0041A252
00419682 59 POP ECX
00419683 5E POP ESI
00419684 8BF8 MOV EDI,EAX
00419686 F3:A4 REP MOVS BYTE PTR ES:,BYTE PTR DS:[>
00419688 50 PUSH EAX
00419689 8B5D F4 MOV EBX,DWORD PTR SS:
0041968C 85DB TEST EBX,EBX
0041968E 74 09 JE SHORT 2.00419699
00419690 53 PUSH EBX
00419691 E8 B60B0000 CALL 2.0041A24C
00419696 83C4 04 ADD ESP,4
00419699 58 POP EAX
0041969A 8945 F4 MOV DWORD PTR SS:,EAX
0041969D 6A FF PUSH -1
0041969F 6A 08 PUSH 8
004196A1 68 54100116 PUSH 16011054
004196A6 68 4D100152 PUSH 5201104D
004196AB E8 B40B0000 CALL 2.0041A264
004196B0 83C4 10 ADD ESP,10
004196B3 8945 F0 MOV DWORD PTR SS:,EAX
004196B6 8B45 F4 MOV EAX,DWORD PTR SS:
004196B9 50 PUSH EAX
004196BA FF75 F0 PUSH DWORD PTR SS:
004196BD E8 25C8FFFF CALL 2.00415EE7
004196C2 83C4 08 ADD ESP,8
004196C5 83F8 00 CMP EAX,0
004196C8 B8 00000000 MOV EAX,0
004196CD 0F94C0 SETE AL
004196D0 8945 EC MOV DWORD PTR SS:,EAX
004196D3 8B5D F0 MOV EBX,DWORD PTR SS:
004196D6 85DB TEST EBX,EBX
004196D8 74 09 JE SHORT 2.004196E3
004196DA 53 PUSH EBX
004196DB E8 6C0B0000 CALL 2.0041A24C
004196E0 83C4 04 ADD ESP,4
004196E3 837D EC 00 CMP DWORD PTR SS:,0
004196E7 0F84 49000000 JE 2.00419736
004196ED 6A 00 PUSH 0
004196EF 68 55944000 PUSH 2.00409455 ; 本机已经认证成功!此注册只限于本机使用!
004196F4 6A FF PUSH -1
004196F6 6A 08 PUSH 8
004196F8 68 4F100116 PUSH 1601104F
004196FD 68 4D100152 PUSH 5201104D
00419702 E8 510B0000 CALL 2.0041A258
00419707 83C4 18 ADD ESP,18
0041970A 6A 00 PUSH 0
0041970C 68 01934000 PUSH 2.00409301 ; 软件认证成功!可无限时使用该软件!
00419711 6A FF PUSH -1
00419713 6A 08 PUSH 8
00419715 68 72100116 PUSH 16011072
0041971A 68 4C000152 PUSH 5201004C
0041971F E8 340B0000 CALL 2.0041A258
00419724 83C4 18 ADD ESP,18
00419727 B8 01000000 MOV EAX,1
0041972C E9 49000000 JMP 2.0041977A
00419731 E9 44000000 JMP 2.0041977A
00419736 6A 00 PUSH 0
00419738 68 7E944000 PUSH 2.0040947E ; 本机认证失败!请检查注册码和认证硬件是否正确!
0041973D 6A FF PUSH -1
0041973F 6A 08 PUSH 8
00419741 68 4F100116 PUSH 1601104F
00419746 68 4D100152 PUSH 5201104D
0041974B E8 080B0000 CALL 2.0041A258
00419750 83C4 18 ADD ESP,18
00419753 6A 00 PUSH 0
00419755 68 29934000 PUSH 2.00409329 ; 程序未注册,或者注册信息不正确!未注册用户每次只能使用20分钟,程序将自动退出!
0041975A 6A FF PUSH -1
0041975C 6A 08 PUSH 8
0041975E 68 72100116 PUSH 16011072
点击运行,然后点系统菜单==》软件注册,输入假的注册码“asdfasdfasdf”段下来啦,断在004194DA,F8单步跟踪,注意堆栈和寄存器窗口。
到这里 0041952F E8 2A0D0000 CALL 2.0041A25E 在寄存器窗口的EAX上出现了我们的机器码 WD-WMAV2M722775
继续跟踪,到达这里004195CC,向下看看,发现有循环,也就是说从004195CC开始,开始算注册码当到00419669的时候,
我们的注册码就全部在堆栈窗口出现了,我们先暂时复制下来,
0012F6C4 00144680ASCII "VEFDRFFDVkVGRFJGRkRWa1ZHUkZKR1JrUldhMVpIVWtaS1IxSnJVbGROUmtZd1ZtcEJlRkZzV25GVGF6VlBaV3RzTlZSdWNHcE5WbVJ6V2tWT1ZFMVdTbHBYYkdSRFV6RlNXVnBYUWt0VVdBPT1aV0JLVFg="
先假定它是我们的注册码!继续向下跟踪,当到004196BD的时候,我们的假注册码和真的注册码同时在寄存器窗口出现了!
我们继续向下跟踪
004196D6 85DB TEST EBX,EBX
这里开始对比了,EBX如果为0就跳到注册失败!
004196D8 /74 09 JE SHORT 2.004196E3
004196DA |53 PUSH EBX
004196DB |E8 6C0B0000 CALL 2.0041A24C
004196E0 |83C4 04 ADD ESP,4
004196E3 \837D EC 00 CMP DWORD PTR SS:,0
004196E7 0F84 49000000 JE 2.00419736
004196ED 6A 00 PUSH 0
004196EF 68 55944000 PUSH 2.00409455 ; 本机已经认证成功!此注册只限于本机使用!
004196F4 6A FF PUSH -1
004196F6 6A 08 PUSH 8
004196F8 68 4F100116 PUSH 1601104F
004196FD 68 4D100152 PUSH 5201104D
00419702 E8 510B0000 CALL 2.0041A258
00419707 83C4 18 ADD ESP,18
0041970A 6A 00 PUSH 0
0041970C 68 01934000 PUSH 2.00409301 ; 软件认证成功!可无限时使用该软件!
00419711 6A FF PUSH -1
00419713 6A 08 PUSH 8
00419715 68 72100116 PUSH 16011072
0041971A 68 4C000152 PUSH 5201004C
0041971F E8 340B0000 CALL 2.0041A258
00419724 83C4 18 ADD ESP,18
00419727 B8 01000000 MOV EAX,1
0041972C E9 49000000 JMP 2.0041977A
00419731 E9 44000000 JMP 2.0041977A
00419736 6A 00 PUSH 0
00419738 68 7E944000 PUSH 2.0040947E ; 本机认证失败!请检查注册码和认证硬件是否正确!
0041973D 6A FF PUSH -1
0041973F 6A 08 PUSH 8
00419741 68 4F100116 PUSH 1601104F
00419746 68 4D100152 PUSH 5201104D
0041974B E8 080B0000 CALL 2.0041A258
00419750 83C4 18 ADD ESP,18
00419753 6A 00 PUSH 0
00419755 68 29934000 PUSH 2.00409329 ; 程序未注册,或者注册信息不正确!未注册用户每次只能使用20分钟,程序将自动退出!
0041975A 6A FF PUSH -1
好了,跟到这里我们可以关掉OD,去试试我们刚才得到的注册码是否正确,大家也可以尝试爆破一下哈!
试了一下,是真的注册码!我们可以可无限时使用该软件了!
--------------------------------------------------------------------------------
【经验总结】
一个简单的软件,没啥可说的!
--------------------------------------------------------------------------------
【版权声明】: 本文原创于cu629944, 转载请注明作者并保持文章的完整, 谢谢!
2011年03月30日 下午 08:37:22
呵呵!!谢谢支持! 很详细呵呵支持一下再看 很强大 详细 学习了 好教程 学习了~~ 很不错!不过我想向楼主请教几个问题!
在打开的窗口中看到 krnln.fnr和 krnln.fne两个函数库!所以
可以判定为易语言的程序!双击进入krnln.fne函数库!为何要选这个函数库?
向下面拉,找到 0040150E|.FFD0 CALL EAX,看到为何要找到这个call前面还有一个EAX!为何在那里下断!CALL EAX,在0040150E这里下断,F9运行,段在了这里,F7跟进,F8单步走,到达这里
100297A6 E8 04F5FFFF CALL krnln.10028CAF,F7跟进去,向下面翻,找到JMP EAX,也就是10028CE3,为什么在这里跟进后 分析却能找到代码? F4运行
到这里,然后F8步过,然后邮件==》分析==》删除模块代码。 都是高手。。。。 很详细 谢楼主的分享 呵呵呵 回复 落雪飞花 的帖子
krnln.fnr和krnln.fne是易语言的支持库,所以要双击这两个支持库中的任意一个就可以了!而且!只有来到易语言的支持库中才能搜索到有用的字符串,这也是易语言对程序的一种保护吧!
所以我们要顺利的到达支持库中,就需要在0040150E跟进去,至于下断和F4运行是我为了节约时间而已!你也可以慢慢单步跟踪!当到了易语言的支持库中,就自然而然的找到了我们需要的代码了! 回复 cu629944 的帖子
虽然还没明白!不过还是谢谢了