前些日子得到一个小软件
小灵通编码转换软件
大小: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直播授课