- UID
- 60822
注册时间2009-5-1
阅读权限10
最后登录1970-1-1
周游历练
TA的每日心情 | 开心 2024-4-20 13:46 |
---|
签到天数: 4 天 [LV.2]偶尔看看I
|
软体名称: 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:[A07790]
00A0162B FF15 6460A000 call dword ptr ds:[A06064] ; kernel32.ReleaseSemaphore
00A01631 FF35 9077A000 push dword ptr ds:[A07790]
-----------------------------------------------
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:[94005A] ////这里是OEP.
00921005 . |C1E0 02 shl eax,2
00921008 . |A3 5E009400 mov dword ptr ds:[94005E],eax
0092100D . |837C24 08 01 cmp dword ptr ss:[esp+8],1
00921012 . |0F85 9B000000 jnz PRSDLL.009210B3
00921018 . |803D 72009400 00 cmp byte ptr ds:[940072],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:[940072]
0092104B . |837C24 08 01 cmp dword ptr ss:[esp+8],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错了
请大牛看看问题出在哪里?指点一下!! |
|