📄 halether.cod
字号:
000c8 e1a00803 mov r0, r3, lsl #16
000cc e1a01820 mov r1, r0, lsr #16
000d0 e59f015c ldr r0, [pc, #0x15C]
000d4 eb000000 bl EdbgOutputDebugString
; 630 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + 2*EDBG_DFLT_BUFFER_POOL_SIZE;
000d8 e59f3180 ldr r3, [pc, #0x180]
; 631 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
000dc e59f117c ldr r1, [pc, #0x17C]
; 632 : break;
000e0 ea00004c b |$L14530|
000e4 |$L14270|
; 604 : break;
; 605 : case EDBG_SVC_PPSH:
; 606 : EdbgOutputDebugString("EDBG_SVC_PPSH\r\n");
000e4 e59f0170 ldr r0, [pc, #0x170]
000e8 eb000000 bl EdbgOutputDebugString
; 607 : if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_PPSH)) {
000ec e59f3158 ldr r3, [pc, #0x158]
000f0 e5d30000 ldrb r0, [r3]
000f4 e3100002 tst r0, #2
; 608 : return FALSE;
000f8 0affffd0 beq |$L14531|
; 609 : }
; 610 : memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.PpshHostAddr,sizeof(EDBG_ADDR));
000fc e59f1154 ldr r1, [pc, #0x154]
00100 e3a0200c mov r2, #0xC
00104 e1a00006 mov r0, r6
00108 eb000000 bl memcpy
; 611 : EdbgOutputDebugString("pPeerAddr IP: %s\r\n", inet_ntoa(pPeerAddr->dwIP));
0010c e5960000 ldr r0, [r6]
00110 eb000000 bl inet_ntoa
00114 e1a01000 mov r1, r0
00118 e59f0124 ldr r0, [pc, #0x124]
0011c eb000000 bl EdbgOutputDebugString
; 612 : EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));
00120 e1d630b4 ldrh r3, [r6, #4]
00124 e1a00803 mov r0, r3, lsl #16
00128 e1a01820 mov r1, r0, lsr #16
0012c e59f010c ldr r0, [pc, #0x10C]
00130 eb000000 bl EdbgOutputDebugString
; 613 : EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));
00134 e1d630b6 ldrh r3, [r6, #6]
00138 e1a00803 mov r0, r3, lsl #16
0013c e1a01820 mov r1, r0, lsr #16
00140 e59f00f4 ldr r0, [pc, #0xF4]
00144 eb000000 bl EdbgOutputDebugString
; 614 : EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));
00148 e1d630b8 ldrh r3, [r6, #8]
0014c e1a00803 mov r0, r3, lsl #16
00150 e1a01820 mov r1, r0, lsr #16
00154 e59f00dc ldr r0, [pc, #0xDC]
00158 eb000000 bl EdbgOutputDebugString
; 615 : EdbgOutputDebugString("pPeerAddr wPort: %x\r\n", (unsigned long)(pPeerAddr->wPort));
0015c e1d630ba ldrh r3, [r6, #0xA]
00160 e1a00803 mov r0, r3, lsl #16
00164 e1a01820 mov r1, r0, lsr #16
00168 e59f00c4 ldr r0, [pc, #0xC4]
0016c eb000000 bl EdbgOutputDebugString
; 616 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY + EDBG_DFLT_BUFFER_POOL_SIZE;
00170 e59f30dc ldr r3, [pc, #0xDC]
; 617 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
00174 e59f10d8 ldr r1, [pc, #0xD8]
; 618 : break;
00178 ea000026 b |$L14530|
0017c |$L14251|
; 590 : // Check the flag in driver globals (set by eboot when it receives the JUMPIMG command)
; 591 : case EDBG_SVC_DBGMSG:
; 592 : EdbgOutputDebugString("EDBG_SVC_DBGMSG\r\n");
0017c e59f00cc ldr r0, [pc, #0xCC]
00180 eb000000 bl EdbgOutputDebugString
; 593 : if (! (pDriverGlobals->eth.etherFlags & EDBG_FL_DBGMSG)) {
00184 e59f30c0 ldr r3, [pc, #0xC0]
00188 e5d30000 ldrb r0, [r3]
0018c e3100001 tst r0, #1
; 594 : return FALSE;
00190 0affffaa beq |$L14531|
; 595 : }
; 596 : memcpy(pPeerAddr, (void *)&pDriverGlobals->eth.DbgHostAddr,sizeof(EDBG_ADDR));
00194 e59f10ac ldr r1, [pc, #0xAC]
00198 e3a0200c mov r2, #0xC
0019c e1a00006 mov r0, r6
001a0 eb000000 bl memcpy
; 597 : EdbgOutputDebugString("pPeerAddr IP: %s\r\n", inet_ntoa(pPeerAddr->dwIP));
001a4 e5960000 ldr r0, [r6]
001a8 eb000000 bl inet_ntoa
001ac e1a01000 mov r1, r0
001b0 e59f008c ldr r0, [pc, #0x8C]
001b4 eb000000 bl EdbgOutputDebugString
; 598 : EdbgOutputDebugString("pPeerAddr wMAC[0]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[0]));
001b8 e1d630b4 ldrh r3, [r6, #4]
001bc e1a00803 mov r0, r3, lsl #16
001c0 e1a01820 mov r1, r0, lsr #16
001c4 e59f0074 ldr r0, [pc, #0x74]
001c8 eb000000 bl EdbgOutputDebugString
; 599 : EdbgOutputDebugString("pPeerAddr wMAC[1]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[1]));
001cc e1d630b6 ldrh r3, [r6, #6]
001d0 e1a00803 mov r0, r3, lsl #16
001d4 e1a01820 mov r1, r0, lsr #16
001d8 e59f005c ldr r0, [pc, #0x5C]
001dc eb000000 bl EdbgOutputDebugString
; 600 : EdbgOutputDebugString("pPeerAddr wMAC[2]: %x\r\n", (unsigned long)(pPeerAddr->wMAC[2]));
001e0 e1d630b8 ldrh r3, [r6, #8]
001e4 e1a00803 mov r0, r3, lsl #16
001e8 e1a01820 mov r1, r0, lsr #16
001ec e59f0044 ldr r0, [pc, #0x44]
001f0 eb000000 bl EdbgOutputDebugString
; 601 : EdbgOutputDebugString("pPeerAddr wPort: %x\r\n", (unsigned long)(pPeerAddr->wPort));
001f4 e1d630ba ldrh r3, [r6, #0xA]
001f8 e1a00803 mov r0, r3, lsl #16
001fc e1a01820 mov r1, r0, lsr #16
00200 e59f002c ldr r0, [pc, #0x2C]
00204 eb000000 bl EdbgOutputDebugString
; 602 : *ppBufferPool = (UCHAR *)EDBG_VIRTUAL_MEMORY;
00208 e3a03102 mov r3, #2, 2
; 603 : EdbgOutputDebugString("ppBufferPool: %x\r\n", (unsigned long)(*ppBufferPool));
0020c e3a01102 mov r1, #2, 2
00210 e3833701 orr r3, r3, #1, 14
00214 e3811701 orr r1, r1, #1, 14
00218 |$L14530|
00218 e59f0010 ldr r0, [pc, #0x10]
0021c e5873000 str r3, [r7]
00220 eb000000 bl EdbgOutputDebugString
; 635 : }
; 636 : return TRUE;
00224 e3a00001 mov r0, #1
; 637 : }
00228 e8bd40f0 ldmia sp!, {r4 - r7, lr}
0022c e12fff1e bx lr
00230 |$L14536|
00230 00000000 DCD |??_C@_0BI@POAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@|
00234 00000000 DCD |??_C@_0BI@LMON@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@|
00238 00000000 DCD |??_C@_0BI@NBDL@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@|
0023c 00000000 DCD |??_C@_0BI@JEI@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@|
00240 00000000 DCD |??_C@_0BI@EBGG@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@|
00244 00000000 DCD |??_C@_0BI@DJOE@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@|
00248 a0008834 DCD 0xa0008834
0024c a0008805 DCD 0xa0008805
00250 00000000 DCD |??_C@_0BC@MIFL@EDBG_SVC_DBGMSG?$AN?6?$AA@|
00254 80045f00 DCD 0x80045f00
00258 a000884c DCD 0xa000884c
0025c 00000000 DCD |??_C@_0BA@ICIM@EDBG_SVC_PPSH?$AN?6?$AA@|
00260 8004be00 DCD 0x8004be00
00264 a0008840 DCD 0xa0008840
00268 00000000 DCD |??_C@_0BA@BHAI@EDBG_SVC_KDBG?$AN?6?$AA@|
0026c 00000000 DCD |??_C@_0BI@FCKF@OEMEthQueryClientInfo?$AN?6?$AA@|
00270 |$M14533|
ENDP ; |OEMEthQueryClientInfo|
EXPORT |OEMEthGetSecs|
EXPORT |??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| [ DATA ] ; `string'
IMPORT |GetSystemTimeInMsec|
00008 AREA |.bss|, NOINIT
|dwLastTime| % 0x4
00000 AREA |.text| { |OEMEthGetSecs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthGetSecs|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetSecs| } ; comdat associative
|$T14543| DCD |OEMEthGetSecs|
DCD 0x40001301
00000 AREA |.rdata| { |??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@| DCB "! Time"
DCB " went backwards (or wrapped): cur: %u, last %u", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthGetSecs| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthGetSecs| PROC
; 650 : {
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 |$M14541|
; 651 : DWORD dwSt;
; 652 : DWORD dwRet;
; 653 :
; 654 : dwSt=GetSystemTimeInMsec(); /* Get system time in msec */
00004 eb000000 bl GetSystemTimeInMsec
; 655 : dwRet = dwSt/1000; /*(change msec to sec)*/
; 656 :
; 657 : if (dwRet < dwLastTime) {
00008 e59f4038 ldr r4, [pc, #0x38]
0000c e1a03000 mov r3, r0
00010 e59f002c ldr r0, [pc, #0x2C]
00014 e5942000 ldr r2, [r4]
00018 e0810093 umull r0, r1, r3, r0
0001c e1a05321 mov r5, r1, lsr #6
00020 e1550002 cmp r5, r2
; 658 : EdbgOutputDebugString("! Time went backwards (or wrapped): cur: %u, last %u\n",
; 659 : dwRet,dwLastTime);
00024 359f0014 ldrcc r0, [pc, #0x14]
00028 31a01005 movcc r1, r5
0002c 3b000000 blcc EdbgOutputDebugString
; 660 : }
; 661 : dwLastTime = dwRet;
00030 e5845000 str r5, [r4]
; 662 : return (dwRet);
00034 e1a00005 mov r0, r5
; 663 : }
00038 e8bd4030 ldmia sp!, {r4, r5, lr}
0003c e12fff1e bx lr
00040 |$L14545|
00040 00000000 DCD |??_C@_0DG@GFFE@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@|
00044 10624dd3 DCD 0x10624dd3
00048 00000000 DCD |dwLastTime|
0004c |$M14542|
ENDP ; |OEMEthGetSecs|
EXPORT |OEMEthCurrentPacketFilter|
EXPORT |??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| [ DATA ] ; `string'
00000 AREA |.text| { |OEMEthCurrentPacketFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthCurrentPacketFilter|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthCurrentPacketFilter| } ; comdat associative
|$T14552| DCD |OEMEthCurrentPacketFilter|
DCD 0x40001b01
00000 AREA |.rdata| { |??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CK@NDDC@OEMEthCurrentPacketFilter?5set?5to@| DCB "OEMEthCurrentPa"
DCB "cketFilter set to [0x%x]", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthCurrentPacketFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthCurrentPacketFilter| PROC
; 707 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M14550|
00004 e1a04000 mov r4, r0
; 708 :
; 709 : if (pfnCurrentPacketFilter)
00008 e59f0058 ldr r0, [pc, #0x58]
0000c e5901000 ldr r1, [r0]
00010 e3510000 cmp r1, #0
00014 0a000009 beq |$L14308|
; 710 : {
; 711 : EdbgOutputDebugString(
; 712 : "OEMEthCurrentPacketFilter set to [0x%x]\r\n",
; 713 : *pdwRequestedFilter);
00018 e5941000 ldr r1, [r4]
0001c e59f0040 ldr r0, [pc, #0x40]
00020 eb000000 bl EdbgOutputDebugString
; 714 :
; 715 : //
; 716 : // Note that we can't do it immediately here, since we are called
; 717 : // by user mode code.
; 718 : // So what we do is to set the flag here for the kernel mode code
; 719 : // to pick up.
; 720 : //
; 721 :
; 722 : dwFilter = *pdwRequestedFilter;
00024 e5940000 ldr r0, [r4]
00028 e59f3030 ldr r3, [pc, #0x30]
; 723 : bNewFilter = TRUE;
0002c e3a01001 mov r1, #1
00030 e5830000 str r0, [r3]
00034 e59f0020 ldr r0, [pc, #0x20]
00038 e5801000 str r1, [r0]
; 724 : return TRUE;
0003c ea000003 b |$L14313|
00040 |$L14308|
; 725 : }
; 726 : else
; 727 : {
; 728 : //
; 729 : // Oh well, eth driver does not yet support filter setting
; 730 : // So if it is PACKET_TYPE_DIRECTED, PACKET_TYPE_MULTICAST,
; 731 : // PACKET_TYPE_BROADCAST, we just lie that we are ok with it.
; 732 : // Since EDBG will run in this mode anyway..
; 733 : //
; 734 :
; 735 : DWORD dwInherentlySupported =
; 736 : PACKET_TYPE_MULTICAST |
; 737 : PACKET_TYPE_DIRECTED |
; 738 : PACKET_TYPE_BROADCAST;
; 739 :
; 740 : if (*pdwRequestedFilter == dwInherentlySupported)
00040 e5940000 ldr r0, [r4]
; 741 : return TRUE;
00044 e3a01001 mov r1, #1
00048 e350000b cmp r0, #0xB
; 742 : else
; 743 : return FALSE;
0004c 13a01000 movne r1, #0
00050 |$L14313|
; 724 : return TRUE;
00050 e1a00001 mov r0, r1
; 744 : }
; 745 :
; 746 : } // OEMEthCurrentPacketFilter()
00054 e8bd4010 ldmia sp!, {r4, lr}
00058 e12fff1e bx lr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -