美腿玉足

  • hongkongdoll 在线 [共享][共享]加密狗保护的VFP软件破解-付费问答-看雪-安全社区|安全招聘|kanxue.com

  • 发布日期:2024-10-23 22:08    点击次数:155

hongkongdoll 在线 [共享][共享]加密狗保护的VFP软件破解-付费问答-看雪-安全社区|安全招聘|kanxue.com

这段时辰正在这习,发现本论坛有一个精华的实例 然而这个名叫rufus的妙手咫尺有计划不上,本东说念主这里附上他的原贴(?t=27948),然而我就照说他所说的操作,有些疑问,有酷爱的不错随着作念一下。到手的不错共享一下,宇宙共同擢升。 可我在作念的经过中将 0040943C     55            push ebp   将0040943C处的代码改成 0040943C    33C0            XOR EAX,EAX时会自动在这行的底下加上一瞥代码,如下: 0040943E    EC              IN AL,DX                                 ; I/O 敕令 然后保存再运行就会出错,有显著的大侠请率领少许; 还有我有近似的一个软件也念念请妙手维护一下,好心东说念主请加我QQ:53885365或留个QQ,晚辈感谢不尽。 以下附上大侠rufus的原贴。 注明:他的软件在?s=&threadid=25868上有,如果莫得权限下载的不错加我QQ,注明zj9.rar 标 题: 加密狗保护的VFP软件破解 作 者: rufus 时 间: 2006-06-24,15:37 链 接: ?t=27948 【著述标题】: 加密狗保护的VFP软件破解 【著述作家】: Rufus Xu 【作家邮箱】: my_home_page@163.com 【软件称呼】: 工程造价V93 【软件大小】: 43.3M 【下载地址】: 【加壳格局】: 狗壳 【保护格局】: 加密狗 【编写话语】: VFP 【使用器具】: OLLDBG 【操作平台】: Windows2000 【软件先容】: 建筑工程造价软件 【作家声明】: 仅仅感酷爱,莫得其他指标。诞妄之处敬请各位大侠见示! -------------------------------------------------------------------------------- 【详备经过】       应一个一又友的申请,破解一个加密狗保护的工程造价软件。畴昔一直莫得搞过加密狗,此次念念试试手,   经过发奋,终于处分,但愿对被加密狗困扰的一又友有所匡助。       为了处分这条狗我花了确凿两个月的业余时辰,从运转的一窍欠亨,到终末齐全破解,走了许多弯路。此次学习的经过   主要分为三个阶段,底下详备先容。       一、外壳调试           在武艺目次下有Vfp6r.dll、Vfp6rchs.dll、Vfp6renu.dll三个文献,无谓说,该武艺是用VFP斥地的,   PEID查不到信息,深度搜索发现是用VC++写的。拿出OD,翻开要调试的武艺ztc.exe,OD停在进口点:      00407049 ztc.>  55            push ebp   0040704A        8BEC          mov ebp,esp   0040704C        83EC 7C       sub esp,7C   0040704F        53            push ebx   00407050        56            push esi   00407051        57            push edi   00407052        C745 C8 A5A50>mov dword ptr ss:[ebp-38],0A5A5   00407059        66:C745 C0 0A>mov word ptr ss:[ebp-40],0A   0040705F        E9 550D0000   jmp ztc.00407DB9   00407064        E9 4C070000   jmp ztc.004077B5   00407069        EB 01         jmp short ztc.0040706C      往下走两步,就是一个跳转,随着走,来到:00407DB9处,是一大片跳转表。      00407CE1        8B45 E0       mov eax,dword ptr ss:[ebp-20]   00407CE4        5F            pop edi   00407CE5        5E            pop esi   00407CE6        5B            pop ebx   00407CE7        8BE5          mov esp,ebp   00407CE9        5D            pop ebp   00407CEA        FF20          jmp dword ptr ds:[eax]   00407CEC        E9 CD000000   jmp ztc.00407DBE   00407CF1      ^ E9 E6FFFFFF   jmp ztc.00407CDC   00407CF6      ^ E9 E1FFFFFF   jmp ztc.00407CDC   00407CFB      ^ E9 9EF3FFFF   jmp ztc.0040709E   00407D00      ^ E9 D7FFFFFF   jmp ztc.00407CDC   00407D05      ^ E9 A5FFFFFF   jmp ztc.00407CAF   00407D0A      ^ E9 14FEFFFF   jmp ztc.00407B23   00407D0F      ^ E9 0FFEFFFF   jmp ztc.00407B23   00407D14      ^ E9 C3FFFFFF   jmp ztc.00407CDC   00407D19      ^ E9 05FEFFFF   jmp ztc.00407B23   00407D1E      ^ E9 B9FFFFFF   jmp ztc.00407CDC   00407D23      ^ E9 FBFDFFFF   jmp ztc.00407B23   00407D28      ^ E9 F6FDFFFF   jmp ztc.00407B23   00407D2D      ^ E9 F1FDFFFF   jmp ztc.00407B23   00407D32      ^ E9 DAFCFFFF   jmp ztc.00407A11   00407D37      ^ E9 D8FDFFFF   jmp ztc.00407B14   00407D3C      ^ E9 C4FDFFFF   jmp ztc.00407B05   00407D41      ^ E9 DDFDFFFF   jmp ztc.00407B23   00407D46      ^ E9 E7FCFFFF   jmp ztc.00407A32   00407D4B      ^ E9 4EF3FFFF   jmp ztc.0040709E   00407D50      ^ E9 CEFDFFFF   jmp ztc.00407B23   00407D55      ^ E9 C9FDFFFF   jmp ztc.00407B23   00407D5A      ^ E9 3FF3FFFF   jmp ztc.0040709E   00407D5F      ^ E9 97FDFFFF   jmp ztc.00407AFB   00407D64      ^ E9 29FAFFFF   jmp ztc.00407792   00407D69      ^ E9 23FFFFFF   jmp ztc.00407C91   00407D6E      ^ E9 79FDFFFF   jmp ztc.00407AEC   00407D73      ^ E9 46FFFFFF   jmp ztc.00407CBE   00407D78      ^ E9 88FBFFFF   jmp ztc.00407905   00407D7D      ^ E9 1EFFFFFF   jmp ztc.00407CA0   00407D82      ^ E9 55FFFFFF   jmp ztc.00407CDC   00407D87      ^ E9 42F6FFFF   jmp ztc.004073CE   00407D8C      ^ E9 88FBFFFF   jmp ztc.00407919   00407D91      ^ E9 8DFDFFFF   jmp ztc.00407B23   00407D96      ^ E9 41FFFFFF   jmp ztc.00407CDC   00407D9B      ^ E9 3CFFFFFF   jmp ztc.00407CDC   00407DA0      ^ E9 26F4FFFF   jmp ztc.004071CB   00407DA5      ^ E9 32FFFFFF   jmp ztc.00407CDC   00407DAA      ^ E9 2DFFFFFF   jmp ztc.00407CDC   00407DAF      ^ E9 EAF2FFFF   jmp ztc.0040709E   00407DB4      ^ E9 6AFDFFFF   jmp ztc.00407B23   00407DB9      ^ E9 F7F9FFFF   jmp ztc.004077B5      在最上头的一条跳转语句00407CEA处下断,F9走,OD停驻来以后,发现DS:[EAX]的值酿成了00405634,   此时EAX=0040E0E0,默示下一步就要跳到该地址了,不息:      00405634     55            push ebp   ...................................   00405654     FF15 0CD14100 call dword ptr ds:[<&USER32.Messag>; USER32.MessageBoxA      F9,跳出对话框,领导莫得加密狗,武艺退出。看来,武艺一经加了狗壳,在最运转就检测有莫得加密狗。      凭证网上的一些教程,咱们要在读狗的技巧下断,读狗细目要用到CreateFileA函数,在OD的敕令插件中输入:   bpx CreateFileA,让OD从新调入武艺,F9,武艺中断在:      0040A4CF     55            push ebp   0040A4D0     8BEC          mov ebp,esp   0040A4D2     51            push ecx   0040A4D3     53            push ebx   0040A4D4     56            push esi   0040A4D5     57            push edi   0040A4D6     8B7D 08       mov edi,dword ptr ss:[ebp+8]   0040A4D9     8B9F 88000000 mov ebx,dword ptr ds:[edi+88]   0040A4DF     83C3 18       add ebx,18   0040A4E2     33F6          xor esi,esi   0040A4E4     6A 00         push 0   0040A4E6     68 80000000   push 80   0040A4EB     6A 03         push 3   0040A4ED     6A 00         push 0   0040A4EF     6A 07         push 7   0040A4F1     68 000000C0   push C0000000   0040A4F6     68 8CC44100   push zj9.0041C48C                  ; ASCII "\\.\LPTDI1"   0040A4FB     FF15 B0D04100 call dword ptr ds:[<&KERNEL32.Crea>; kernel32.CreateFileA      CTRL+F9复返,几次复返以后,来到0040943C,不错看到一些花指示,差未几到了泉源了,      0040943C     55            push ebp   0040943D     8BEC          mov ebp,esp   0040943F     81EC 78010000 sub esp,178   00409445     53            push ebx   00409446     33C9          xor ecx,ecx      将0040943C处的代码改成      0040943C    33C0            XOR EAX,EAX   00409E62    C3              RETN      将改造保存到到文献。让OD从新加载武艺,取销扫数断点,F9运行。如故领导莫得找到加密狗。      因为00407CEA是要道跳转处,咱们来望望武艺是什么技巧为EAX赋值的,mov eax,dword ptr ss:[ebp-20]   在OD的敕令处输入D 0040E0E0,下硬件写入断点,从新运行,在00407A8B处断下      00407A7A     E8 9D030000   call zj9.00407E1C   00407A7F     3B05 04E14000 cmp eax,dword ptr ds:[40E104]   00407A85     0F84 0A000000 je zj9.00407A95   00407A8B     C705 E0E04000>mov dword ptr ds:[40E0E0],zj9.00405634<-------------------MessageBox进口      00407A85处是要道跳转,NOP掉,保存,从新运行,在00407CEA(VFP进口点),下断,F9运行。OD断下以后:      00407CEA      - FF20          jmp dword ptr ds:[eax]             ; ztc.00401760      一经不是00405634了,运转的壳检测狗一经跳过了。熟谙VFP武艺的东说念主皆知说念00401760是极端的VFP武艺进口点。      F9运行,武艺一经不领导无狗了,然而翻开主武艺以后,如故领导莫得注册码。看来,在VFP主文献内部还有对狗的调用。          二、VFP武艺处理          在讲这部分的技巧,先要补一课,就是VFP武艺的结构和奉行递次:          VFP 编译生成的 EXE 文献主要由两部份构成,第一部份(前半部分)是一个尺度的 PE 样式的可奉行文献,   这个尺度的 PE 样式文献又叫载入器. 第二部分(后半部分)是一个尺度的 .app 文献, 这个 app 与在 VFP   集成斥地环境中编译时采纳编译为 app 文献时生成的 app 文献基本上是相似的,仅仅在这个 app 文献的尾部,   多了 14 字节的标志部份(这 14 字节的前 10 字节是 00 83 41 00 00 00 00 00 00 00,终末四字节是 app 文献   加上14 字节的标志后的长度). 因此,不错觉得 VFP 编译的 EXE 文献是由一个尺度的 EXE 文献背面附上一个 .app 文献,   再加上 14 字节的标志部份构成. 何况, 前半部份的 EXE 与后半部分的 app 之间莫得任何关系.       前边提到的载入器的作用尽头简便,主如果查验运行环境,载入相应的 VFPxR.DLL 并调用 VFPxR.DLL   中的 DllWinMain 函数. 在调用 DllWinMain 函数时, 有两个参数, 第一个是一个串参数,必须是 VFP 编译的 EXE   文献的文献名, 第二个是一个 int 型的值,一般用十六进制的 FF 就不错. 因此,你不错用除 VFP 除外的任何编译语   言来编译写我方的载入器以达到加密武艺的作用.       事实上,一但载入器调用了 VFPxR.DLL 中的  DllWinMain 函数后, VFP 就接纳了武艺的范畴权,你就再也无法   用旧例的手脚范畴武艺的运行经过了. 底下说一下 VFP 的 DLL 的启动经过:最初,VFPxR.DLL 会读取文献的终末 14 字节.   并凭证终末四字节来定位到 app 在 EXE 文献中的位置。         好了,课补收场,即然VFPxR.DLL要读文献,那么咱们就在读文献的技巧下断,在OD的敕令处输入:bpx ReadFile,   F9运行,在00405F3B处断下,      00405F3B        FF15 94D04100 call dword ptr ds:[<&KERNEL32.Read>; kernel32.ReadFile      此时堆栈的数据为:      0012FA18    00000030  |hFile = 00000030   0012FA1C    0012FA40  |Buffer = 0012FA40   0012FA20    00000040  |BytesToRead = 40 (64.)   0012FA24    0012FA38  |pBytesRead = 0012FA38   0012FA28    00000000  \pOverlapped = NULL   0012FA2C    004031C0  ztc.004031C0      咱们看到BytesToRead大小为40H,不是E(14字节),F9不息,三次断下以后,      004061FF        FF15 94D04100 call dword ptr ds:[<&KERNEL32.Read>; kernel32.ReadFile      此时堆栈的数据为:      0012F9E8    00000030  |hFile = 00000030   0012F9EC    0012FAE4  |Buffer = 0012FAE4   0012F9F0    0000000E  |BytesToRead = E (14.)   0012F9F4    0012FABC  |pBytesRead = 0012FABC   0012F9F8    00000000  \pOverlapped = NULL      这就是咱们要找的地点了,读出的数据保存在0012FAE4,F8走一步,在OD敕令行输入D 0012FAE4      0012FAE4  29 B3 CB 29 29 29 29 29  )乘)))))   0012FAEC  29 29 51 0A F3 29        ))Q.?.      然而这并不是咱们要的数据,00 83 41 00 00 00 00 00 00 00,看来一经加密过了,往下看,      00406298        FF4D F4       dec dword ptr ss:[ebp-C]   0040629B        837D F4 00    cmp dword ptr ss:[ebp-C],0   0040629F        0F8C 1F000000 jl ztc.004062C4   004062A5        8B45 F4       mov eax,dword ptr ss:[ebp-C]   004062A8        8B4D AC       mov ecx,dword ptr ss:[ebp-54]   004062AB        33D2          xor edx,edx   004062AD        8A1408        mov dl,byte ptr ds:[eax+ecx]   004062B0        8A82 08E34000 mov al,byte ptr ds:[edx+40E308]   004062B6        8B4D F4       mov ecx,dword ptr ss:[ebp-C]   004062B9        8B55 AC       mov edx,dword ptr ss:[ebp-54]   004062BC        880411        mov byte ptr ds:[ecx+edx],al      这就是解密经过了,从DS:[40E308]取出解密的数据,咱们望望解密以后的数据:      0012FAE4  00 83 41 00 00 00 00 00  .?.....   0012FAEC  00 00 EC 06 31 00        ..?1..      这就是VFP的尾部数据,它指出了VFP的APP文献的大小是003106EC-E,   咱们用UE翻开主程小引件,找到29 B3 CB 29 29 29 29 29所在的位置,然后计较出   APP的头部位置,然后就把重新部运转的大小为003106EC-E数据取出另存.      然后咱们在望望明文存放的位置,在OD的敕令行输入D 0040E038,不错看到如下数据:      0040E308  44 5D 85 5B 15 07 EF A2  D]?铫   0040E310  5A DD 06 22 A3 3F 81 4E  Z?"??   0040E318  C0 D6 73 A4 C1 F5 E9 96  乐sち蹰      咱们用UE翻开主武艺搜索44 5D 85 5B 15 07 EF A2,然而找不到,看来这部分数据是   动态生成的,没关系,咱们把咫尺内存中的数据导出来就OK了,有OD自带的插件DUMP出数据   另存为DUMP.EXE,然后用OD翻开,再搜索44 5D 85 5B 15 07 EF A2,一经找到了.凭证解   密算法,咱们把从44 5D 85 5B 15 07 EF A2运转的数据取出512字节出来,因为512背面的字   节用不到.      然后写武艺把数据解密,我是用VB.NET写的,               Dim mFile As File               If File.Exists(Application.StartupPath & "\file1.dat") And File.Exists(Application.StartupPath & "\file2.dat") Then                   Dim mRFileStream1 As FileStream = mFile.OpenRead(Application.StartupPath & "\file1.dat") '密文                   Dim mRFileStream2 As FileStream = mFile.OpenRead(Application.StartupPath & "\file2.dat") '明文                   Dim mWFileStream As FileStream = New FileStream(Application.StartupPath & "\ztc93.app", FileMode.OpenOrCreate)                   Dim i As Integer                   For i = 0 To &H3106DD                       Dim mArray1(0) As Byte                       Dim mArray2(0) As Byte                       '读密文                       mRFileStream1.Seek(i, SeekOrigin.Begin)                       mRFileStream1.Read(mArray1, 0, 1)                       '找对应明文                       mRFileStream2.Seek(mArray1(0), SeekOrigin.Begin)                       mRFileStream2.Read(mArray2, 0, 1)                       '写入新文献                       mWFileStream.Seek(i, SeekOrigin.Begin)                       mWFileStream.Write(mArray2, 0, 1)                   Next                      mRFileStream1.Close()                   mRFileStream2.Close()                   mWFileStream.Close()               End If   取得的文献就是VFP的APP文献了,咱们拿出FOXTOOL,翻开,呵呵,隆盛啊,源代码出来了.因为我不会VFP,是以反编译出   来的代码我莫得主义再从新编译,我试了许屡次,编译欠亨过.是以得另念念主义了.          三、模拟写狗                 用FOXTOOL翻开,不错看到APP文献中尽然还有读狗的地点,      zy4000.dll是读狗的DLL      DECLARE INTEGER DogRead IN zy4000 INTEGER DogBytes, INTEGER DogAddr,  STRING @Data   DogAddr = 49   DogBytes = 1   Data= '12345678901123456789011'   i = DogRead(DogBytes,DogAddr,@Data)   if left(data,1)<> 'g' or eee = 99   thisform.Image1.width=thisform.width   thisform.Image1.height=thisform.height   thisform.Image1.visible=.t.   thisform.refresh()   do form 系列号      好了,有了源代码,模拟狗就轻车熟路了,底下是我用VC++7.0写的DLL   #include "stdafx.h"   #include "string.h"      short public DogRead(unsigned short DOGBYTES,unsigned short DOGADDR,char *pData )   {     switch(DOGBYTES)     {       case 6:         memcpy(pData,"999abc",6);         break;       case 2 :         memcpy(pData,"fg",2);         break;       case 3 :         memcpy(pData,"123",3);         break;       case 1:         memcpy(pData,"g",1);         break;       case 8:         memcpy(pData,"g",1);         break;       case 5:         memcpy(pData,"g",1);         break;       case 15:         memcpy(pData,"g",1);         break;       default :         pData="test!!!";         break;     }     return 0;   }      将编译好的DLL替换好zy4000.dll,运行武艺,OK,一切日常,至此,齐全破解

[培训]内核驱动高档班hongkongdoll 在线hongkongdoll 在线,冲击BAT一流互联网大厂责任,每周日13:00-18:00直播讲课

爱的色放在线看 上传的附件: zj9.rar (328.90kb,14次下载)

相关资讯

【AVGP-016】爆乳美尻すごいからだスペシャル</a>2007-12-01シネマユニ

天天影院网 2024-08-20
传话:咱们是社会方针新时期的后生【AVGP-016】爆乳美尻すごいからだスペシャル 2007-12-01シネマユニット・ガス&$AVGP200130分钟,要反映习近平总通知高歌,勇作念走在时期前边的奋进者、蛊卦者、奉献者,以芳华想象、用内容...

好色电影院 河北工业大学化工学院

天天影院网 2024-10-06
河北工业大学化工学院2014级本科生名单好色电影院 化工141班 曹琪岩晁雨薇姜鉴哲马炳香沈俊英陶皓月田冲徐迪杨玉珠 张明霞张晓宁边 鹏陈亚北谷馨宇郭亚光李洪冰刘 吉刘清昀 乔伟华苏冠文田 龙王曙光王树浩王中彪王子彦王自壮文武双 吴佳豪吴晓...

好色电影院 “爱牙日”荒谬福利→洗牙、窝沟阻塞、全口涂氟,150份口腔健康体验券限时免费申领ing!

天天影院网 2024-10-07
今天是第36个“宇宙爱牙日”好色电影院 由区卫生健康委、开开集团把持, 雷允上药业西区和静安区牙病防治所共同经办的 2024年静安区口腔健康柔软活动 暨雷允上首届健康爱牙日 将在雷允上药城稳妥启动。 150份口腔健康体验券免费申领 2024...
    友情链接:

Powered by 美腿玉足 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024