用OD手脱未知壳 - "顺风"猪病通3.0脱壳 + 破解
【脱壳作者】 刹那恍惚【使用工具】 OllyDBG 汉化第二版,LordPE Deluxe 增强版,ImportREC v1.6F,PEiD v0.94,FI 4.01a
【脱壳平台】 WinXP SP2
【软件名称】 猪病通3.0
【软件大小】 22.0 MB
【保护选项】 作者自己保护
【加壳方式】 未知壳
【软件简介】 《猪病通XP版》计算机软件是由农业部饲料工业中心、北京广胜丰联信息技术有限公司的专家合作研究的新一代智能型兽医临床诊断软件,系统采用了现代计量医学的研究成果,应用概率统计的方法,如最大似然法、逐步判别法和聚类分析法等,其主要诊断原理是通过对兽医临床诊断的大量样本、专家经验和书本知识对疾病信息和症状信息进行分值计量定义,找出症状与疾病之间的统计规律,确定出经验公式,然后根据对这些症状信息的统计处理而得出诊断结果。
【下载地址】 http://www.fulllinks.com/products/download/swine.rar
【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【脱壳内容】
一、准备工作
老规矩设置Ollydbg忽略所有异常,用IsDebug 1.4插件去掉Ollydbg的调试器标志。
1 侦壳:用PEiD查壳 Borland Delphi 4.0 - 5.0
用FI 4.01a 查显示为 Borland Delphi 5 !! (*PE)
二,去效验 + 寻找 OEP + DUMP
OD 载入后有入口警告
0082420C >55 PUSH EBP ; 程序入口
0082420D 8BEC MOV EBP,ESP
0082420F B9 0E000000 MOV ECX,0E
00824214 6A 00 PUSH 0
00824216 6A 00 PUSH 0
因为程序有时间效验。下断点 BP GetLocalTime 然后 Shift+F9 运行,断下后清除断点 Alt+F9 返回
00819885 66:8B4C24 0E MOV CX,WORD PTR SS:[ESP+E] ; 返回到这里
0081988A 66:8B5424 0A MOV DX,WORD PTR SS:[ESP+A]
0081988F 66:8B4424 08 MOV AX,WORD PTR SS:[ESP+8]
00819894 E8 6BFFFFFF CALL flDiagS.00819804
00819899 DD5C24 18 FSTP QWORD PTR SS:[ESP+18]
0081989D 9B WAIT
0081989E 66:8B4424 16 MOV AX,WORD PTR SS:[ESP+16]
008198A3 50 PUSH EAX
008198A4 66:8B4C24 18 MOV CX,WORD PTR SS:[ESP+18]
008198A9 66:8B5424 16 MOV DX,WORD PTR SS:[ESP+16]
008198AE 66:8B4424 14 MOV AX,WORD PTR SS:[ESP+14]
008198B3 E8 D0FDFFFF CALL flDiagS.00819688
008198B8 DC4424 18 FADD QWORD PTR SS:[ESP+18]
008198BC DD1C24 FSTP QWORD PTR SS:[ESP]
008198BF 9B WAIT
008198C0 DD0424 FLD QWORD PTR SS:[ESP]
008198C3 83C4 20 ADD ESP,20
008198C6 C3 RETN ; 返回到 008245F4
F8 单步,走到 008198C6 处时返回到 008245F4
008245EF E8 8452FFFF CALL flDiagS.00819878 ; 获取本地时间。
008245F4 E8 3B02FFFF CALL flDiagS.00814834 ; 返回后 F8 单步走
008245F9 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX
008245FC 8955 B8 MOV DWORD PTR SS:[EBP-48],EDX
008245FF DF6D B4 FILD QWORD PTR SS:[EBP-4C]
00824602 DD1D 18908200 FSTP QWORD PTR DS:
00824608 9B WAIT
00824609 DD05 208A8200 FLD QWORD PTR DS:
0082460F E8 2002FFFF CALL flDiagS.00814834
00824614 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX
00824617 8955 B8 MOV DWORD PTR SS:[EBP-48],EDX
0082461A DF6D B4 FILD QWORD PTR SS:[EBP-4C]
0082461D DD1D 20908200 FSTP QWORD PTR DS:
00824623 9B WAIT
00824624 DD05 20908200 FLD QWORD PTR DS:
0082462A D81D 544F8200 FCOMP DWORD PTR DS:
00824630 DFE0 FSTSW AX
00824632 9E SAHF
00824633 75 18 JNZ SHORT flDiagS.0082464D
00824635 8B05 18908200 MOV EAX,DWORD PTR DS:
0082463B 8905 20908200 MOV DWORD PTR DS:,EAX
00824641 8B05 1C908200 MOV EAX,DWORD PTR DS:
00824647 8905 24908200 MOV DWORD PTR DS:,EAX
0082464D E8 86DEFFFF CALL flDiagS.008224D8
00824652 DD05 20908200 FLD QWORD PTR DS:
00824658 DC1D 18908200 FCOMP QWORD PTR DS:
0082465E DFE0 FSTSW AX
00824660 9E SAHF
00824661 77 30 JA SHORT flDiagS.00824693
00824663 8B05 18908200 MOV EAX,DWORD PTR DS:
00824669 8905 208A8200 MOV DWORD PTR DS:,EAX
0082466F 8B05 1C908200 MOV EAX,DWORD PTR DS:
00824675 8905 248A8200 MOV DWORD PTR DS:,EAX
0082467B C705 C4868200 F>MOV DWORD PTR DS:,-1
00824685 C705 C8868200 F>MOV DWORD PTR DS:,-1
0082468F 33DB XOR EBX,EBX
00824691 EB 28 JMP SHORT flDiagS.008246BB
00824693 8B05 208A8200 MOV EAX,DWORD PTR DS:
00824699 8905 18908200 MOV DWORD PTR DS:,EAX
0082469F 8B05 248A8200 MOV EAX,DWORD PTR DS:
008246A5 8905 1C908200 MOV DWORD PTR DS:,EAX
008246AB 33C0 XOR EAX,EAX
008246AD A3 C4868200 MOV DWORD PTR DS:,EAX
008246B2 33C0 XOR EAX,EAX
008246B4 A3 C8868200 MOV DWORD PTR DS:,EAX
008246B9 B3 01 MOV BL,1
008246BB A1 C4778200 MOV EAX,DWORD PTR DS:
008246C0 3B05 78778200 CMP EAX,DWORD PTR DS:
008246C6 74 5A JE SHORT flDiagS.00824722 ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
008246C8 DD05 F0868200 FLD QWORD PTR DS:
008246CE D81D 544F8200 FCOMP DWORD PTR DS:
008246D4 DFE0 FSTSW AX
008246D6 9E SAHF
008246D7 74 49 JE SHORT flDiagS.00824722
008246D9 DD05 F0868200 FLD QWORD PTR DS:
008246DF E8 5001FFFF CALL flDiagS.00814834
008246E4 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX
008246E7 8955 B8 MOV DWORD PTR SS:[EBP-48],EDX
008246EA DF6D B4 FILD QWORD PTR SS:[EBP-4C]
008246ED DC1D 18908200 FCOMP QWORD PTR DS:
008246F3 DFE0 FSTSW AX
008246F5 9E SAHF
008246F6 76 2A JBE SHORT flDiagS.00824722
008246F8 833D 98778200 0>CMP DWORD PTR DS:,1
008246FF 74 13 JE SHORT flDiagS.00824714
00824701 E8 7AF6FFFF CALL flDiagS.00823D80
00824706 B2 01 MOV DL,1
00824708 B0 03 MOV AL,3
0082470A E8 E9DFFFFF CALL flDiagS.008226F8
0082470F E9 84070000 JMP flDiagS.00824E98
00824714 830D B4868200 0>OR DWORD PTR DS:,8
0082471B 33C0 XOR EAX,EAX
0082471D A3 C4868200 MOV DWORD PTR DS:,EAX
00824722 A1 C4778200 MOV EAX,DWORD PTR DS:
00824727 3B05 78778200 CMP EAX,DWORD PTR DS:
0082472D 0F84 89000000 JE flDiagS.008247BC ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
00824733 DD05 F8868200 FLD QWORD PTR DS:
00824739 D81D 544F8200 FCOMP DWORD PTR DS:
0082473F DFE0 FSTSW AX
00824741 9E SAHF
00824742 74 78 JE SHORT flDiagS.008247BC
00824744 DD05 F8868200 FLD QWORD PTR DS:
0082474A E8 E500FFFF CALL flDiagS.00814834
0082474F 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX
00824752 8955 B8 MOV DWORD PTR SS:[EBP-48],EDX
00824755 DF6D B4 FILD QWORD PTR SS:[EBP-4C]
00824758 DC1D 18908200 FCOMP QWORD PTR DS:
0082475E DFE0 FSTSW AX
00824760 9E SAHF
00824761 0F92C0 SETB AL
00824764 0AC3 OR AL,BL
00824766 74 2C JE SHORT flDiagS.00824794
00824768 833D 98778200 0>CMP DWORD PTR DS:,1
0082476F 74 13 JE SHORT flDiagS.00824784
00824771 E8 0AF6FFFF CALL flDiagS.00823D80
00824776 B2 01 MOV DL,1
00824778 B0 04 MOV AL,4
0082477A E8 79DFFFFF CALL flDiagS.008226F8
0082477F E9 14070000 JMP flDiagS.00824E98
00824784 830D B4868200 1>OR DWORD PTR DS:,10
0082478B 33C0 XOR EAX,EAX
0082478D A3 C4868200 MOV DWORD PTR DS:,EAX
00824792 EB 28 JMP SHORT flDiagS.008247BC
00824794 DD05 F8868200 FLD QWORD PTR DS:
0082479A E8 9500FFFF CALL flDiagS.00814834
0082479F 8BF0 MOV ESI,EAX
008247A1 DD05 18908200 FLD QWORD PTR DS:
008247A7 E8 8800FFFF CALL flDiagS.00814834
008247AC 2BF0 SUB ESI,EAX
008247AE 3B35 C4868200 CMP ESI,DWORD PTR DS:
008247B4 73 06 JNB SHORT flDiagS.008247BC
008247B6 8935 C4868200 MOV DWORD PTR DS:,ESI
008247BC A1 C4778200 MOV EAX,DWORD PTR DS:
008247C1 3B05 78778200 CMP EAX,DWORD PTR DS:
008247C7 74 50 JE SHORT flDiagS.00824819 ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
008247C9 803D 10878200 0>CMP BYTE PTR DS:,0
008247D0 74 47 JE SHORT flDiagS.00824819
008247D2 8D45 B0 LEA EAX,DWORD PTR SS:[EBP-50]
008247D5 BA 10878200 MOV EDX,flDiagS.00828710
008247DA E8 290EFFFF CALL flDiagS.00815608
008247DF 8B45 B0 MOV EAX,DWORD PTR SS:[EBP-50]
008247E2 50 PUSH EAX
008247E3 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54]
008247E6 B8 604F8200 MOV EAX,flDiagS.00824F60
008247EB E8 1CE2FFFF CALL flDiagS.00822A0C
008247F0 8B55 AC MOV EDX,DWORD PTR SS:[EBP-54]
008247F3 58 POP EAX
008247F4 E8 570FFFFF CALL flDiagS.00815750
008247F9 74 1E JE SHORT flDiagS.00824819
008247FB 833D 98778200 0>CMP DWORD PTR DS:,1
00824802 74 0E JE SHORT flDiagS.00824812
00824804 B2 01 MOV DL,1
00824806 B0 05 MOV AL,5
00824808 E8 EBDEFFFF CALL flDiagS.008226F8
0082480D E9 86060000 JMP flDiagS.00824E98
00824812 830D B4868200 0>OR DWORD PTR DS:,1
00824819 A1 C4778200 MOV EAX,DWORD PTR DS:
0082481E 3B05 78778200 CMP EAX,DWORD PTR DS:
00824824 74 50 JE SHORT flDiagS.00824876 ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
00824826 803D 10888200 0>CMP BYTE PTR DS:,0
0082482D 74 47 JE SHORT flDiagS.00824876
0082482F 8D45 A8 LEA EAX,DWORD PTR SS:[EBP-58]
00824832 BA 10888200 MOV EDX,flDiagS.00828810
00824837 E8 CC0DFFFF CALL flDiagS.00815608
0082483C 8B45 A8 MOV EAX,DWORD PTR SS:[EBP-58]
0082483F 50 PUSH EAX
00824840 8D55 A4 LEA EDX,DWORD PTR SS:[EBP-5C]
00824843 B8 784F8200 MOV EAX,flDiagS.00824F78
00824848 E8 BFE1FFFF CALL flDiagS.00822A0C
0082484D 8B55 A4 MOV EDX,DWORD PTR SS:[EBP-5C]
00824850 58 POP EAX
00824851 E8 FA0EFFFF CALL flDiagS.00815750
00824856 74 1E JE SHORT flDiagS.00824876
00824858 833D 98778200 0>CMP DWORD PTR DS:,1
0082485F 74 0E JE SHORT flDiagS.0082486F
00824861 B2 01 MOV DL,1
00824863 B0 06 MOV AL,6
00824865 E8 8EDEFFFF CALL flDiagS.008226F8
0082486A E9 29060000 JMP flDiagS.00824E98
0082486F 830D B4868200 0>OR DWORD PTR DS:,2
00824876 A1 C4778200 MOV EAX,DWORD PTR DS:
0082487B 3B05 78778200 CMP EAX,DWORD PTR DS:
00824881 74 34 JE SHORT flDiagS.008248B7 ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
00824883 833D 08878200 0>CMP DWORD PTR DS:,0
0082488A 74 2B JE SHORT flDiagS.008248B7
0082488C A1 08878200 MOV EAX,DWORD PTR DS:
00824891 3B05 A8868200 CMP EAX,DWORD PTR DS:
00824897 74 1E JE SHORT flDiagS.008248B7
00824899 833D 98778200 0>CMP DWORD PTR DS:,1
008248A0 74 0E JE SHORT flDiagS.008248B0
008248A2 B2 01 MOV DL,1
008248A4 B0 07 MOV AL,7
008248A6 E8 4DDEFFFF CALL flDiagS.008226F8
008248AB E9 E8050000 JMP flDiagS.00824E98
008248B0 830D B4868200 0>OR DWORD PTR DS:,4
008248B7 A1 C4778200 MOV EAX,DWORD PTR DS:
008248BC 3B05 78778200 CMP EAX,DWORD PTR DS:
008248C2 74 6B JE SHORT flDiagS.0082492F ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
008248C4 A1 F0798200 MOV EAX,DWORD PTR DS:
008248C9 8B00 MOV EAX,DWORD PTR DS:[EAX]
008248CB 2305 00878200 AND EAX,DWORD PTR DS:
008248D1 74 5C JE SHORT flDiagS.0082492F
008248D3 8B35 F0798200 MOV ESI,DWORD PTR DS: ; flDiagS.00827534
008248D9 8B36 MOV ESI,DWORD PTR DS:[ESI]
008248DB F7D6 NOT ESI
008248DD 2335 00878200 AND ESI,DWORD PTR DS:
008248E3 85F6 TEST ESI,ESI
008248E5 76 1E JBE SHORT flDiagS.00824905
008248E7 4E DEC ESI
008248E8 3B35 C8868200 CMP ESI,DWORD PTR DS:
008248EE 73 06 JNB SHORT flDiagS.008248F6
008248F0 8935 C8868200 MOV DWORD PTR DS:,ESI
008248F6 A1 F0798200 MOV EAX,DWORD PTR DS:
008248FB 0B30 OR ESI,DWORD PTR DS:[EAX]
008248FD 8935 00878200 MOV DWORD PTR DS:,ESI
00824903 EB 2A JMP SHORT flDiagS.0082492F
00824905 833D 98778200 0>CMP DWORD PTR DS:,1
0082490C 74 13 JE SHORT flDiagS.00824921
0082490E E8 6DF4FFFF CALL flDiagS.00823D80
00824913 B2 01 MOV DL,1
00824915 B0 04 MOV AL,4
00824917 E8 DCDDFFFF CALL flDiagS.008226F8
0082491C E9 77050000 JMP flDiagS.00824E98
00824921 830D B4868200 2>OR DWORD PTR DS:,20
00824928 33C0 XOR EAX,EAX
0082492A A3 C8868200 MOV DWORD PTR DS:,EAX
0082492F A1 C4778200 MOV EAX,DWORD PTR DS:
00824934 3B05 78778200 CMP EAX,DWORD PTR DS:
0082493A 0F84 D2000000 JE flDiagS.00824A12 ; 鼠标双击 Z 寄存器改 0 为 1 避过判断
00824940 A1 F0798200 MOV EAX,DWORD PTR DS:
00824945 8B00 MOV EAX,DWORD PTR DS:[EAX]
00824947 2305 04878200 AND EAX,DWORD PTR DS:
0082494D 0F84 BF000000 JE flDiagS.00824A12
00824953 8B35 F0798200 MOV ESI,DWORD PTR DS: ; flDiagS.00827534
00824959 8B36 MOV ESI,DWORD PTR DS:[ESI]
0082495B F7D6 NOT ESI
0082495D 2335 04878200 AND ESI,DWORD PTR DS:
00824963 85F6 TEST ESI,ESI
00824965 76 78 JBE SHORT flDiagS.008249DF
00824967 84DB TEST BL,BL
00824969 75 74 JNZ SHORT flDiagS.008249DF
0082496B DD05 18908200 FLD QWORD PTR DS:
00824971 DC25 20908200 FSUB QWORD PTR DS:
00824977 D81D 904F8200 FCOMP DWORD PTR DS:
0082497D DFE0 FSTSW AX
0082497F 9E SAHF
00824980 72 41 JB SHORT flDiagS.008249C3
00824982 833D AC8A8200 0>CMP DWORD PTR DS:,1
00824989 75 37 JNZ SHORT flDiagS.008249C2
0082498B DD05 18908200 FLD QWORD PTR DS:
00824991 DC25 20908200 FSUB QWORD PTR DS:
00824997 8975 B4 MOV DWORD PTR SS:[EBP-4C],ESI
0082499A 33C0 XOR EAX,EAX
0082499C 8945 B8 MOV DWORD PTR SS:[EBP-48],EAX
0082499F DF6D B4 FILD QWORD PTR SS:[EBP-4C]
008249A2 DED9 FCOMPP
008249A4 DFE0 FSTSW AX
008249A6 9E SAHF
008249A7 76 15 JBE SHORT flDiagS.008249BE
008249A9 DD05 18908200 FLD QWORD PTR DS:
008249AF DC25 20908200 FSUB QWORD PTR DS:
008249B5 E8 7AFEFEFF CALL flDiagS.00814834
008249BA 2BF0 SUB ESI,EAX
008249BC EB 05 JMP SHORT flDiagS.008249C3
008249BE 33F6 XOR ESI,ESI
008249C0 EB 01 JMP SHORT flDiagS.008249C3
008249C2 4E DEC ESI
008249C3 3B35 C4868200 CMP ESI,DWORD PTR DS:
008249C9 73 06 JNB SHORT flDiagS.008249D1
008249CB 8935 C4868200 MOV DWORD PTR DS:,ESI
008249D1 A1 F0798200 MOV EAX,DWORD PTR DS:
008249D6 8B00 MOV EAX,DWORD PTR DS:[EAX]
008249D8 0BC6 OR EAX,ESI
008249DA A3 04878200 MOV DWORD PTR DS:,EAX
008249DF 85F6 TEST ESI,ESI
008249E1 0F96C0 SETBE AL
008249E4 0AD8 OR BL,AL
008249E6 74 2A JE SHORT flDiagS.00824A12
008249E8 833D 98778200 0>CMP DWORD PTR DS:,1
008249EF 74 13 JE SHORT flDiagS.00824A04
008249F1 E8 8AF3FFFF CALL flDiagS.00823D80
008249F6 B2 01 MOV DL,1
008249F8 B0 04 MOV AL,4
008249FA E8 F9DCFFFF CALL flDiagS.008226F8
008249FF E9 94040000 JMP flDiagS.00824E98
00824A04 830D B4868200 4>OR DWORD PTR DS:,40
00824A0B 33C0 XOR EAX,EAX
00824A0D A3 C4868200 MOV DWORD PTR DS:,EAX
00824A12 E8 E5D8FFFF CALL flDiagS.008222FC ; 到这就可以下段内存访问断点了。
00824A17 E8 64F3FFFF CALL flDiagS.00823D80
00824A1C 90 NOP
00824A1D 90 NOP
00824A1E 90 NOP
00824A1F 90 NOP
00824A20 90 NOP
00824A21 E8 B2DAFFFF CALL flDiagS.008224D8
上面不改成 JMP 是壳后面有自效验。
F8走到 00824A12 时就可以下段内存访问断点了。
Alt + M 打开内存映射窗口,先对代码段下内存访问断点,Shift + F9
内存映射, 条目 22
地址=00401000
大小=002B8000 (2850816.)
属主=flDiagS00400000
区段=CODE
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
00814705 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>; 中断到此处
然后对PE 文件头下内存访问断点,Shift + F9
内存映射, 条目 21
地址=00400000
大小=00001000 (4096.)
属主=flDiagS00400000 (自身)
区段=
包含=PE 文件头
类型=Imag 01001002
访问=R
初始访问=RWE
00824A66 8B78 3C MOV EDI,DWORD PTR DS:[EAX+3C] ; 中断到此处
然后再对代码段下内存访问断点,Shift + F9 后就到 OEP 了。
内存映射, 条目 22
地址=00401000
大小=002B8000 (2850816.)
属主=flDiagS00400000
区段=CODE
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
006B8D30 55 PUSH EBP ; OEP 了。
006B8D31 8BEC MOV EBP,ESP
006B8D33 83C4 F0 ADD ESP,-10
006B8D36 53 PUSH EBX
006B8D37 B8 B0806B00 MOV EAX,flDiagS.006B80B0
006B8D3C E8 E3DCD4FF CALL flDiagS.00406A24
006B8D41 8B1D DCDE6B00 MOV EBX,DWORD PTR DS: ; flDiagS.006BFC14
006B8D47 8B03 MOV EAX,DWORD PTR DS:[EBX]
006B8D49 E8 766CDDFF CALL flDiagS.0048F9C4
006B8D4E 8B0B MOV ECX,DWORD PTR DS:[EBX]
用 LoadPE 修正映像大小后完全 DUMP。用 ImportREC 选择进程,OEP 填 2B8D30 自动搜索IAT,获取输入表,得到正确输入表后修复抓取文件就可以了。
脱壳总结:
F8 到 00824A12 后也可以继续 F8 向下走,走到 00824A66 这后直接下一次 CODE 段内存访问断点也就可以到达 OEP 了。 动画下载 : http://bbs.86sw.com/dispbbs.asp?boardID=3&ID=40&page=1 好东西,支持!!! 好东西,支持!!! 先顶在看。。。。。。。。。。
跪求猪病通破戒版
老大能把你破戒好的猪病通发一份给我吗?感激万分。 厉害。。。。。。。。。 原帖由 marshall 于 2006-3-17 05:00 发表老大能把你破戒好的猪病通发一份给我吗?感激万分。
http://free5.ys168.com/?dragonfire 好东西,支持!!! 学习,支持。。。。。。。。