首页
社区
课程
招聘
[求助]Armadillo 3.78
发表于: 2005-7-21 18:13 5768

[求助]Armadillo 3.78

2005-7-21 18:13
5768
前些日子得到一个小软件
小灵通编码转换软件
大小:532K
被Armadillo 3.78 加过外壳.所以找了相关文章进行了测试现在遇到一些小问题望个位大虾帮忙.
软件开始就要求进行注册,并没有运行主程序
运行OD
取消所有异常
加载目标
直接下断 BP OpenMutexA
00457000 P>  60            pushad
00457001     E8 00000000   call PSID转换.00457006
00457006     5D            pop ebp
00457007     50            push eax
00457008     51            push ecx
00457009     0FCA          bswap edx
0045700B     F7D2          not edx
0045700D     9C            pushfd
0045700E     F7D2          not edx
00457010     0FCA          bswap edx
00457012     EB 0F         jmp short PSID转换.00457023

按shft+F9 中断在此处
7C80EC1B k>  8BFF          mov edi,edi
7C80EC1D     55            push ebp
7C80EC1E     8BEC          mov ebp,esp
7C80EC20     51            push ecx
7C80EC21     51            push ecx
7C80EC22     837D 10 00    cmp dword ptr ss:[ebp+10],0
7C80EC26     56            push esi
7C80EC27     0F84 7A500300 je kernel32.7C843CA7
堆栈
0012D784    0042E538  /CALL 到 OpenMutexA 来自 PSID转换.0042E532
0012D788    001F0001  |Access = 1F0001
0012D78C    00000000  |Inheritable = FALSE
0012D790    0012DDC4  \MutexName = "D64::DA16506F7F" *
*号所在堆栈值在下面用到

Ctrl+G 401000
输入以下代码
00401000     60            pushad
00401001     9C            pushfd
00401002     68 C4DD1200   push 12DDC4 *
00401007     33C0          xor eax,eax
00401009     50            push eax
0040100A     50            push eax
0040100B     E8 2FDB407C   call kernel32.CreateMutexA
00401010     9D            popfd
00401011     61            popad
00401012   - E9 04DC407C   jmp kernel32.OpenMutexA
新建EIP 在401000
F9运行
中断在OpenMutexA 到现在取消了双进程.
取消端点 BC OpenMutexA
继续下断 BP GetModuleHandleA 运行
我注意了堆栈一直到
00127954   /0012CC80
00127958   |00AC57B8  返回到 00AC57B8 来自 kernel32.GetModuleHandleA
0012795C   |00AD9BAC  ASCII "kernel32.dll"
00127960   |00ADAE48  ASCII "VirtualAlloc"
00127964   |7C9210ED  ntdll.RtlLeaveCriticalSection

继续F9一次
00127954   /0012CC80
00127958   |00AC57D5  返回到 00AC57D5 来自 kernel32.GetModuleHandleA
0012795C   |00AD9BAC  ASCII "kernel32.dll"
00127960   |00ADAE3C  ASCII "VirtualFree"
00127964   |7C9210ED  ntdll.RtlLeaveCriticalSection

看了以前大虾写的文章知道下一次F9应该是又主程序调用GetModuleHandleA并且Magic Jump就在这个附近了
我这边的结果是
00127604   /00127640
00127608   |00AD034B  返回到 00AD034B 来自 kernel32.GetModuleHandleA
0012760C   |00000000

使用Alt+F9返回主程序
00AD034B     68 007F0000   push 7F00
00AD0350     53            push ebx
00AD0351     8945 E8       mov dword ptr ss:[ebp-18],eax
00AD0354     FF15 9844AD00 call dword ptr ds:[AD4498]                         ; USER32.LoadCursorA
00AD035A     BE B0AFAD00   mov esi,0ADAFB0                                    ; UNICODE "SRTSmartDlg"
00AD035F     8945 F0       mov dword ptr ss:[ebp-10],eax
00AD0362     C745 F4 10000>mov dword ptr ss:[ebp-C],10
00AD0369     8975 FC       mov dword ptr ss:[ebp-4],esi
00AD036C     8D45 D8       lea eax,dword ptr ss:[ebp-28]
00AD036F     50            push eax
00AD0370     E8 BA130000   call 00AD172F
00AD0375     66:85C0       test ax,ax
00AD0378     75 18         jnz short 00AD0392
00AD037A     68 44C6AD00   push 0ADC644
00AD037F     56            push esi
00AD0380     FF15 E042AD00 call dword ptr ds:[AD42E0]                         ; msvcrt.wcscat
00AD0386     43            inc ebx
00AD0387     59            pop ecx
00AD0388     83FB 0A       cmp ebx,0A
00AD038B     59            pop ecx
00AD038C   ^ 7C DE         jl short 00AD036C
00AD038E     32C0          xor al,al
00AD0390     EB 02         jmp short 00AD0394
00AD0392     B0 01         mov al,1
00AD0394     5E            pop esi
00AD0395     5B            pop ebx
00AD0396     C9            leave
00AD0397     C3            retn
却找不到magic jump真的不知道是怎么会事,,
软件我已经放在了
http://www.dydtcom.com/1.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可能要先注册才能按教程来
2005-7-21 21:34
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个文件应该使用了copymem2,
问题是她根本不让有试用的机会,所以我就不明白什么时候能够进入主程序.
或者什么时候开始自身解密.
希望各位大虾,大哥,帮忙看看.或者提供一些方法.
2005-7-21 22:25
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
顶一下贴子,让大家能看到..
2005-7-28 14:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我有一个软件也是这种加密方式,我也没办法破解,呜。。。。。,老兄,你有破解思路了告诉我一声:genda@163.com
2005-7-29 08:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
对付这种壳我倒是有个办法,可以在ollydbg中将它的子进程附加进来。附加进来后,按照正常的办法脱即可。如下图:
00457000 >-EB FE            JMP SHORT PSID.<ModuleEntryPoint>
00457002   0000             ADD BYTE PTR DS:[EAX],AL
00457004   0000             ADD BYTE PTR DS:[EAX],AL
00457006   5D               POP EBP
00457007   50               PUSH EAX
00457008   51               PUSH ECX
00457009   0FCA             BSWAP EDX
0045700B   F7D2             NOT EDX
0045700D   9C               PUSHFD
0045700E   F7D2             NOT EDX
00457010   0FCA             BSWAP EDX
00457012   EB 0F            JMP SHORT PSID.00457023
00457014   B9 EB0FB8EB      MOV ECX,EBB80FEB
00457019   07               POP ES                                   ; Modification of segment register
0045701A   B9 EB0F90EB      MOV ECX,EB900FEB
0045701F   08FD             OR CH,BH
00457021   EB 0B            JMP SHORT PSID.0045702E
00457023   F2:              PREFIX REPNE:                            ; Superfluous prefix
00457024  ^EB F5            JMP SHORT PSID.0045701B
00457026  ^EB F6            JMP SHORT PSID.0045701E
00457028   F2:              PREFIX REPNE:                            ; Superfluous prefix
00457029   EB 08            JMP SHORT PSID.00457033
0045702B   FD               STD
0045702C  ^EB E9            JMP SHORT PSID.00457017
0045702E   F3:              PREFIX REP:                              ; Superfluous prefix
0045702F  ^EB E4            JMP SHORT PSID.00457015
00457031   FC               CLD
00457032  -E9 9D0FC98B      JMP 8C0E7FD4
00457037   CA F7D1          RETF 0D1F7                               ; Far return
再改EB FE为正常的原始数字,然后按照正常的脱即可。
2005-7-29 09:41
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不注册好象不行吧.
2005-7-29 09:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
行不行我就不知道了。反正可以到达下面的画面:
C81082F > 8BFF             MOV EDI,EDI //停在这里
7C810831   55               PUSH EBP
7C810832   8BEC             MOV EBP,ESP
7C810834   FF75 1C          PUSH DWORD PTR SS:[EBP+1C]
7C810837   FF75 18          PUSH DWORD PTR SS:[EBP+18]
7C81083A   FF75 14          PUSH DWORD PTR SS:[EBP+14]
7C81083D   FF75 10          PUSH DWORD PTR SS:[EBP+10]
7C810840   FF75 0C          PUSH DWORD PTR SS:[EBP+C]
7C810843   FF75 08          PUSH DWORD PTR SS:[EBP+8]
7C810846   6A FF            PUSH -1
7C810848   E8 D9FDFFFF      CALL kernel32.CreateRemoteThread
7C81084D   5D               POP EBP
7C81084E   C2 1800          RETN 18 //F7跟进
7C810851   90               NOP
7C810852   90               NOP
7C810853   90               NOP
7C810854   90               NOP
7C810855   90               NOP

几个CRC地址为:F73DBCF6
               6DE9FC5C
               AED86E58
               8B9E4684
剩下的事情自己弄吧。
2005-7-29 09:56
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
xizhu 大虾感谢您提供的方法,我先试试看.
据说附加进程的方法会让系统变的很慢,,先试试看再说吧..
2005-7-30 14:06
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
对了xizhu大虾 我有个问题想要问您
CRC地址 是不是校验地址?
在怎么用的?
2005-7-30 14:19
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
不行呀,我感觉是老鼠吃鸭蛋无从下口,可否把整个脱壳过程写出来让我学习一下?
2005-7-30 17:07
0
雪    币: 45
活跃值: (23)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
xizhu:
能把这个程序的脱壳全部过程过程贴出来么?
2005-8-3 14:01
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
13
我的问题和楼主一样,请问论坛中有谁解决了该问题,谢谢!
2006-4-8 16:26
0
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
14
坛主,论坛中是否有脱该壳的完整教程,非常感谢,我觉的copymem2文章比较少
到目前还没有找到
2006-4-8 16:30
0
游客
登录 | 注册 方可回帖
返回
//