KTH-3科泰华出入境证件数字相片采集系统(高手直接无视)
本帖最后由 vienna 于 2009-9-15 13:57 编辑【文章标题】: KTH-3科泰华出入境证件数字相片采集系统,爆的
【文章作者】: vienna
【作者邮箱】: vienna@9.cn
【作者主页】: http://hi.baidu.com/vi_orz
【软件名称】: KTH-3科泰华出入境证件数字相片采集系统
【软件大小】: 23.1 MB
【下载地址】: 自己搜索下载
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Delphi
【使用工具】: od,peid
【操作平台】: xp sp2
【软件介绍】: 别人给的,应该是个照相软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
005C6F68 >55 push ebp ; //程序入口
005C6F69 8BEC mov ebp,esp
005C6F6B 83C4 F0 add esp,-10
005C6F6E 53 push ebx
005C6F6F B8 F0695C00 mov eax,kthPhoto.005C69F0
005C6F74 E8 7300E4FF call kthPhoto.00406FEC
005C6F79 8B1D 54C75C00 mov ebx,dword ptr ds: ; kthPhoto.005CDC3C
005C6F7F 68 C8705C00 push kthPhoto.005C70C8 ; kthPhoto2009
005C6F84 6A 00 push 0
005C6F86 6A 00 push 0
005C6F88 E8 2702E4FF call kthPhoto.004071B4
005C6F8D E8 3A03E4FF call <jmp.&kernel32.GetLastError>
005C6F92 3D B7000000 cmp eax,0B7
005C6F97 75 20 jnz short kthPhoto.005C6FB9
005C6F99 6A 00 push 0
//基于之前在程序的目录已经找到一个KthSoft.ini文件,里面也有了我们输入的假吗,那就不折腾了,是重启验证。
//既然是ini文件,bp GetPrivateProfileStringA
运行若干次,取假码的断下来了
下面是堆栈窗口
0012F71C 00476729/CALL 到 GetPrivateProfileStringA 来自 kthPhoto.00476724
0012F720 005C6960|Section = "App"
0012F724 005C6954|Key = "SN" //这是ini文件存家吗的一项
0012F728 00404CA1|Default = ""
0012F72C 0012F744|ReturnBuffer = 0012F744
0012F730 00000800|BufSize = 800 (2048.)
0012F734 01578570\IniFileName = "C:\Program Files\KTH-3科泰华出入境证件数字相片采集系统\KTHSoft.INI"
0012F738 7C930228ntdll.7C930228
0012F73C FFFFFFFF
0012F740 00474FE4kthPhoto.00474FE4
正常的。。我们返回程序领空
004766FF|.68 00080000 push 800
00476704|.8D85 00F8FFFF lea eax,
0047670A|.50 push eax
0047670B|.8B45 0C mov eax,
0047670E|.E8 89E5F8FF call kthPhoto.00404C9C
00476713|.50 push eax
00476714|.8BC7 mov eax,edi
00476716|.E8 81E5F8FF call kthPhoto.00404C9C
0047671B|.50 push eax
0047671C|.8BC6 mov eax,esi
0047671E|.E8 79E5F8FF call kthPhoto.00404C9C
00476723|.50 push eax ; |Section
00476724|.E8 D30BF9FF call <jmp.&kernel32.GetPrivateProfileStr>; \GetPrivateProfileStringA
00476729|.8BC8 mov ecx,eax ;//返回到这里来,下断,运行,然后慢慢跟吧
0047672B|.8D95 00F8FFFF lea edx,
00476731|.8B45 08 mov eax,
00476734|.E8 93E1F8FF call kthPhoto.004048CC
00476739|.5F pop edi
0047673A|.5E pop esi
0047673B|.5B pop ebx
0047673C|.8BE5 mov esp,ebp
//下断,运行,然后慢慢跟吧
0047673F\.C2 0800 retn 8 ;返回到 005C67F8 (kthPhoto.005C67F8)
//继续跟
005C67F8|.8D55 E8 lea edx, ;//返回到这里来
005C67FB|.33C0 xor eax,eax
005C67FD|.E8 06FEFFFF call kthPhoto.005C6608
005C6802|.84C0 test al,al
005C6804|.75 07 jnz short kthPhoto.005C680D
005C6806|.33DB xor ebx,ebx
005C6808|.E9 E9000000 jmp kthPhoto.005C68F6
005C680D|>8D55 D8 lea edx,
005C6810|.8B45 E8 mov eax,
005C6813|.E8 8CF9FFFF call kthPhoto.005C61A4
005C6818|.8D45 F4 lea eax,
005C681B|.E8 BCDFE3FF call kthPhoto.004047DC
005C6820|.BB 10000000 mov ebx,10
005C6825|.8D75 D8 lea esi,
005C6828|>8D4D CC /lea ecx,
005C682B|.33C0 |xor eax,eax
005C682D|.8A06 |mov al,byte ptr ds:
005C682F|.BA 02000000 |mov edx,2
005C6834|.E8 C72EE4FF |call kthPhoto.00409700
005C6839|.8B55 CC |mov edx,
005C683C|.8D45 F4 |lea eax,
005C683F|.E8 68E2E3FF |call kthPhoto.00404AAC
005C6844|.46 |inc esi
005C6845|.4B |dec ebx
005C6846|.^ 75 E0 \jnz short kthPhoto.005C6828 ;//循环~~是在算机器码~~
005C6848|.8D45 F0 lea eax,
005C684B|.8B55 F4 mov edx, ;//下面写着堆栈 ss:=0157861C, (ASCII "F3A0F9D604A7472900814BA6333A4F5B")~~机器码
//往下跟跟~~~
005C6876|.BB 10000000 mov ebx,10
005C687B|.8D75 D8 lea esi,
005C687E|>8D4D C4 /lea ecx,
005C6881|.33C0 |xor eax,eax
005C6883|.8A06 |mov al,byte ptr ds:
005C6885|.BA 02000000 |mov edx,2
005C688A|.E8 712EE4FF |call kthPhoto.00409700
005C688F|.8B55 C4 |mov edx,
005C6892|.8D45 F4 |lea eax,
005C6895|.E8 12E2E3FF |call kthPhoto.00404AAC
005C689A|.46 |inc esi
005C689B|.4B |dec ebx
005C689C|.^ 75 E0 \jnz short kthPhoto.005C687E ;//又一个循环,是算注册码了吧,上面还有些东西我不知道干什么的
005C689E|.8B45 EC mov eax,
005C68A1|.50 push eax ; /hObject
005C68A2|.E8 D508E4FF call <jmp.&kernel32.CloseHandle> ; \CloseHandle
005C68A7|.8B45 F8 mov eax,
005C68AA|.8B55 F4 mov edx, ;//下面显示堆栈 ss:=015786AC, (ASCII "7A573272829CBA0157A3C81A45D776DD"),,,注册码了
//下面接着的是爆破位置
005C68B2 /74 40 je short kthPhoto.005C68F4 ;//一轮工作之后。。这里没有跳。。要爆破的将这里改成jmp就完事了
005C68B4|. |8B0D 3CC45C00 mov ecx,dword ptr ds: ;kthPhoto.00675DBC
005C68BA|. |A1 54C75C00 mov eax,dword ptr ds:
005C68BF|. |8B00 mov eax,dword ptr ds:
005C68C1|. |8B15 50625C00 mov edx,dword ptr ds: ;kthPhoto.005C629C
005C68C7|. |E8 C8CDEAFF call kthPhoto.00473694
005C68CC|. |A1 3CC45C00 mov eax,dword ptr ds:
005C68D1|. |8B00 mov eax,dword ptr ds:
005C68D3|. |8B80 00030000 mov eax,dword ptr ds:
005C68D9|. |8B55 F0 mov edx,
005C68DC|. |E8 EB7CF0FF call kthPhoto.004CE5CC
005C68E1|. |A1 3CC45C00 mov eax,dword ptr ds:
005C68E6|. |8B00 mov eax,dword ptr ds:
005C68E8|. |8B10 mov edx,dword ptr ds:
005C68EA|. |FF92 E8000000 call dword ptr ds:
005C68F0|. |33DB xor ebx,ebx
005C68F2|. |EB 02 jmp short kthPhoto.005C68F6
005C68F4|> \B3 01 mov bl,1
005C68F6|>33C0 xor eax,eax
--------------------------------------------------------------------------------------------------
另外发现一个很快找到位置爆破的操作。。但这些乱碰的。。而且和上面的爆破位置不一样,效果是一样的。。估计是影响了0还是1所以上下效果一样的(菜鸟)
关于为什么这样可以找到位置,还望高手说说教教~~~
话说我们bp GetPrivateProfileStringA
来到了~~~
0012F71C 00476729/CALL 到 GetPrivateProfileStringA 来自 kthPhoto.00476724
0012F720 005C6960|Section = "App"
0012F724 005C6954|Key = "SN" //这是ini文件存家吗的一项
0012F728 00404CA1|Default = ""
0012F72C 0012F744|ReturnBuffer = 0012F744
0012F730 00000800|BufSize = 800 (2048.)
0012F734 01578570\IniFileName = "C:\Program Files\KTH-3科泰华出入境证件数字相片采集系统\KTHSoft.INI"
0012F738 7C930228ntdll.7C930228
0012F73C FFFFFFFF
0012F740 00474FE4kthPhoto.00474FE4
............
............
............//省略一亿字,因为我们直接拖到最底
............
0012FF98|00000000
0012FF9C|00000000
0012FFA0|01578570
0012FFA4]0012FFC0
0012FFA8|005C7042返回到 kthPhoto.005C7042 来自 kthPhoto.005C678C //最最后一个返回到程序的,我们双击返回
0012FFAC|7FFDB000
0012FFB0|00390012返回到 00390012
0012FFB4|0012FFE0指针到下一个 SEH 记录
0012FFB8|0040431CSE 句柄
0012FFBC|0012FFC0
0012FFC0\0012FFF0
0012FFC4 7C817077返回到 kernel32.7C817077
0012FFC8 7C930228ntdll.7C930228
0012FFCC FFFFFFFF
0012FFD0 7FFDB000
0012FFD4 805522FA
0012FFD8 0012FFC8
0012FFDC 85C551C0
0012FFE0 FFFFFFFFSEH 链尾部
0012FFE4 7C839AD8SE 句柄
0012FFE8 7C817080kernel32.7C817080
0012FFEC 00000000
0012FFF0 00000000
0012FFF4 00000000
0012FFF8 005C6F68kthPhoto.<ModuleEntryPoint>
0012FFFC 00000000
//回到cpu这里
005C6FC7 /74 74 je short kthPhoto.005C703D ; //这里一跳过去,call了就出输入注册码窗口,nop掉达爆破效果(不懂理论,不知道为什么呢)
005C6FC9 |8B0D 9CC55C00 mov ecx,dword ptr ds: ; kthPhoto.00675D88
005C6FCF |8B03 mov eax,dword ptr ds:
005C6FD1 |8B15 8C395C00 mov edx,dword ptr ds: ; kthPhoto.005C39D8
005C6FD7 |E8 B8C6EAFF call kthPhoto.00473694
005C6FDC |8B0D FCC85C00 mov ecx,dword ptr ds: ; kthPhoto.00675D70
005C6FE2 |8B03 mov eax,dword ptr ds:
005C6FE4 |8B15 04185C00 mov edx,dword ptr ds: ; kthPhoto.005C1850
005C6FEA |E8 A5C6EAFF call kthPhoto.00473694
005C6FEF |8B0D DCC65C00 mov ecx,dword ptr ds: ; kthPhoto.00675D50
005C6FF5 |8B03 mov eax,dword ptr ds:
005C6FF7 |8B15 20CB5B00 mov edx,dword ptr ds: ; kthPhoto.005BCB6C
005C6FFD |E8 92C6EAFF call kthPhoto.00473694
005C7002 |8B0D F8C45C00 mov ecx,dword ptr ds: ; kthPhoto.00675D18
005C7008 |8B03 mov eax,dword ptr ds:
005C700A |8B15 2C985B00 mov edx,dword ptr ds: ; kthPhoto.005B9878
005C7010 |E8 7FC6EAFF call kthPhoto.00473694
005C7015 |8B0D 58C45C00 mov ecx,dword ptr ds: ; kthPhoto.00675D30
005C701B |8B03 mov eax,dword ptr ds:
005C701D |8B15 A4AD5B00 mov edx,dword ptr ds: ; kthPhoto.005BADF0
005C7023 |E8 6CC6EAFF call kthPhoto.00473694
005C7028 |8B0D A8C95C00 mov ecx,dword ptr ds: ; kthPhoto.00675D0C
005C702E |8B03 mov eax,dword ptr ds:
005C7030 |8B15 44735B00 mov edx,dword ptr ds: ; kthPhoto.005B7390
005C7036 |E8 59C6EAFF call kthPhoto.00473694
005C703B |EB 7B jmp short kthPhoto.005C70B8
005C703D \E8 4AF7FFFF call kthPhoto.005C678C ; //这个call过了就出输入注册码的窗口。。我还不懂,直接往上看
005C7042 84C0 test al,al ; //双击后返回到这里
----------------------------------------------------------------------------------------
找算法,写注册机那些高深的东西留着哪位高手有兴趣就搞吧。。菜鸟飘过~~~~
--------------------------------------------------------------------------------
【经验总结】
断点后最后一个返回可能是好东西。
--------------------------------------------------------------------------------
【版权声明】: 转载请注明作者并保持文章的完整, 谢谢!
2009年09月15日 13:48:41 很详细的一个
学习了 krcox
你让我扣分扣到手抽筋了。:rggrg 请发个软件给我啊谢谢zll1722@QQ.com
页:
[1]