20602060 发表于 2009-8-17 14:55:42

脱DLL问题

软体名称: XX管理系统
软体大小: 10.2MB
软体语言: 简体中文
软体类别: 流程软件
PEiD: Anti007 V1.0-V2.X -> NsPacK Private   * Sign.By.fly *
公司前段叫人开发的流程软件,因为这套软件是每台电脑使用都要一个加密狗,现在加了几台电脑没有狗用不了,而作者已经跑路找不到了想买都买不到..汗死.....
主程序已经脱了.就差这个DLL.按主程序的方法脱不了
下载地址:http://www.rayfile.com/files/ca84b319-8a3f-11de-ab24-0014221f469f/
分析过程
.009D71B1 PR> $9C                pushfd                         //入口处
009D71B2   .60                pushad
009D71B3   .E8 33000000       call PRSDLL.009D71EB
009D71B8   >5D                pop ebp
009D71B9   .B8 A3050150       mov eax,500105A3
........................
009D7290   .FFD0            call eax            //F2下断 F7进入
009D7292   .83C4 04         add esp,4
009D7295   .58                pop eax
009D7296   .5F                pop edi
009D7297   .50                push eax
009D7298   .68 00000000       push 0
009D729D   .68 0A000000       push 0A
009D72A2   .05 56160000       add eax,1656
009D72A7   .57                push edi
009D72A8   .FFD0            call eax
.................................................
00A0160E      E8 ED010000         call 00A01800
00A01613      85C0                test eax,eax
00A01615      74 38               je short 00A0164F      ///无狗这里改jnz可以跳过狗检测一直可以跑到OEP
00A01617      43                  inc ebx
00A01618      81FB FF000000       cmp ebx,0FF
00A0161E    ^ 7C E0               jl short 00A01600
00A01620      33DB                xor ebx,ebx
00A01622      53                  push ebx
00A01623      6A 01               push 1
00A01625      FF35 9077A000       push dword ptr ds:
00A0162B      FF15 6460A000       call dword ptr ds:               ; kernel32.ReleaseSemaphore
00A01631      FF35 9077A000       push dword ptr ds:
-----------------------------------------------
009D747D   .5B                pop ebx
009D747E   .59                pop ecx
009D747F   .5E                pop esi
009D7480   .83C3 0C         add ebx,0C
009D7483   .^ E2 E1             loopd short PRSDLL.009D7466
009D7485   >61                popad
009D7486   .9D                popfd
009D7487   .- E9 749BF4FF       jmp PRSDLL.00921000             //JMP往OEP
-------------------------------------------------
00921000   > /A1 5A009400       mov eax,dword ptr ds:   ////这里是OEP.
00921005   . |C1E0 02         shl eax,2
00921008   . |A3 5E009400       mov dword ptr ds:,eax
0092100D   . |837C24 08 01      cmp dword ptr ss:,1
00921012   . |0F85 9B000000   jnz PRSDLL.009210B3
00921018   . |803D 72009400 00cmp byte ptr ds:,0
0092101F   . |74 24             je short PRSDLL.00921045
00921021   . |E8 86E90100       call PRSDLL.0093F9AC                     ;jmp to kernel32.GetVersion
00921026   . |BA 73009400       mov edx,PRSDLL.00940073                  ;ASCII "Nonshared DATA segment required"
0092102B   . |25 00000080       and eax,80000000
00921030   . |74 05             je short PRSDLL.00921037
00921032   . |BA 93009400       mov edx,PRSDLL.00940093                  ;ASCII "Cannot run multiple instances of a DLL under WIN32s"
00921037   > |52                push edx
00921038   . |E8 FBCB0100       call PRSDLL.0093DC38
0092103D   . |58                pop eax
0092103E   . |33C0            xor eax,eax
00921040   . |E9 00010000       jmp PRSDLL.00921145
00921045   > |FE05 72009400   inc byte ptr ds:
0092104B   . |837C24 08 01      cmp dword ptr ss:,1
00921050   . |75 19             jnz short PRSDLL.0092106B
00921052   . |57                push edi
00921053   . |51                push ecx
用OD插件DUMP提示"无法读取被调试进程的内存(00400000..004CFFFF)错误...但是插件的OEP是521000
用LordPE DUMP没有提示
用ImportREC无法修复指针.提示无法读取此内存.不是知道是不是OEP错了
请大牛看看问题出在哪里?指点一下!!

杜杜哎哟 发表于 2009-8-30 09:07:14

貌似 inline Patch 的方法 好像可以.....连脱壳好像都不用的...

曾经在网络上看到过一篇相关文章,论坛还是博客,记不清了。

    只要在的程序的开头某处插入类似的SEH (结构化异常处理)[据说不脱壳的也OK],并在异常处理程序中针对要patch的地方设置“硬件断点”,等“硬件断点”激活后进行patch就可以了。这等于是在进程内嵌了一个微型的debugger,和进程外的debugger型的loader类似。


                另外,我是新手 仅提供方法不要问我具体操作步骤....

cjteam 发表于 2009-9-1 10:10:32

DLL脱壳需要处理重定向。请搜索 “DLL脱壳”学习

20602060 发表于 2009-9-3 10:01:47

原帖由 cjteam 于 2009-9-1 10:10 发表 https://www.chinapyg.com/images/common/back.gif
DLL脱壳需要处理重定向。请搜索 “DLL脱壳”学习
谢谢提醒.我竟然基本的重定向问题都忘记了.

chadd 发表于 2009-9-11 00:17:48

OEP 应该是471000
页: [1]
查看完整版本: 脱DLL问题