|
|
#include <wanhelp.h>
DECLARE_API(ndiswancb) { DWORD Address, BytesRead; NDISWANCB NdisWanCB;
Address = GetExpression("ndiswan!ndiswancb");
if (!ReadMemory(Address, &NdisWanCB, sizeof(NDISWANCB), &BytesRead)) { return; }
if (BytesRead >= sizeof(NDISWANCB)) {
DisplayNdisWanCB(Address, &NdisWanCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(NdisWanCB)); }
return; }
DECLARE_API(enumwanadaptercb) { DWORD Address, BytesRead; WAN_GLOBAL_LIST AdapterList; PWAN_GLOBAL_LIST Address1;
Address = GetExpression("ndiswan!wanadaptercblist"); Address1 = (PWAN_GLOBAL_LIST)Address;
if (!ReadMemory(Address, &AdapterList, sizeof(WAN_GLOBAL_LIST), &BytesRead)) { return; }
if (BytesRead >= sizeof(WAN_GLOBAL_LIST)) { dprintf("WanAdapterCBList: 0x%8.8x\n",Address); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", AdapterList.Lock.SpinLock, AdapterList.Lock.OldIrql); dprintf(" Count: %ld MaxCount: %ld\n", AdapterList.ulCount, AdapterList.ulMaxCount);
Address = AdapterList.List.Flink;
while ((PVOID)Address != (PVOID)&Address1->List) { WAN_ADAPTERCB WanAdapterCB;
if (ReadMemory(Address, &WanAdapterCB, sizeof(WAN_ADAPTERCB), &BytesRead)) { DisplayWanAdapterCB(Address, &WanAdapterCB); }
Address = (DWORD)WanAdapterCB.Linkage.Flink; }
} else {
dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(WAN_GLOBAL_LIST)); } }
DECLARE_API(wanadaptercb) { DWORD Address, BytesRead; WAN_ADAPTERCB WanAdapterCB; PUCHAR s = (PSTR)args; BOOLEAN Verbose = FALSE;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("wanadapter <PWANADAPTERCB>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &WanAdapterCB, sizeof(WAN_ADAPTERCB), &BytesRead)) { return; }
if (BytesRead >= sizeof(WAN_ADAPTERCB)) {
DisplayWanAdapterCB(Address, &WanAdapterCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(WanAdapterCB)); } }
DECLARE_API(enumadaptercb) { DWORD Address, BytesRead; WAN_GLOBAL_LIST AdapterList; PWAN_GLOBAL_LIST Address1;
Address = GetExpression("ndiswan!adaptercblist"); Address1 = (PWAN_GLOBAL_LIST)Address;
if (!ReadMemory(Address, &AdapterList, sizeof(WAN_GLOBAL_LIST), &BytesRead)) { return; }
if (BytesRead >= sizeof(WAN_GLOBAL_LIST)) {
dprintf("AdapterCBList: 0x%8.8x\n",Address); dprintf(" Lock: 0x%8.8x Irql: 0x%8.8x\n", AdapterList.Lock.SpinLock, AdapterList.Lock.OldIrql); dprintf(" Count: %ld MaxCount: %ld\n", AdapterList.ulCount, AdapterList.ulMaxCount);
Address = AdapterList.List.Flink;
while ((PVOID)Address != (PVOID)&Address1->List) { ADAPTERCB AdapterCB;
if (ReadMemory(Address, &AdapterCB, sizeof(ADAPTERCB), &BytesRead)) { DisplayAdapterCB(Address, &AdapterCB); }
Address = (DWORD)AdapterCB.Linkage.Flink; } } else {
dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(WAN_GLOBAL_LIST)); } }
DECLARE_API(adaptercb) { DWORD Address, BytesRead; ADAPTERCB AdapterCB; PUCHAR s = (PSTR)args; BOOLEAN Verbose = FALSE;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("adapter <PADAPTERCB>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &AdapterCB, sizeof(ADAPTERCB), &BytesRead)) { return; }
if (BytesRead >= sizeof(ADAPTERCB)) {
DisplayAdapterCB(Address, &AdapterCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(AdapterCB)); } }
DECLARE_API(connectiontable) { DWORD Address, Address1, BytesRead, i, j; CONNECTION_TABLE ConnectionTable;
Address = GetExpression("ndiswan!connectiontable");
if (!ReadMemory(Address, &Address1, sizeof(DWORD), &BytesRead)) { return; }
if (!ReadMemory(Address1, &ConnectionTable, sizeof(CONNECTION_TABLE), &BytesRead)) { return; }
if (BytesRead >= sizeof(CONNECTION_TABLE)) { DisplayConnectionTable(Address, &ConnectionTable);
for (i = 0, j = 0; j < ConnectionTable.ulNumActiveLinks; i++) { LINKCB LinkCB;
//
// Get pointer to location in Linktable
//
Address = ConnectionTable.LinkArray + i;
if (!ReadMemory(Address, &Address1, sizeof(DWORD), &BytesRead)) { continue; }
if (Address1 != NULL) {
if (ReadMemory(Address1, &LinkCB, sizeof(LINKCB), &BytesRead)) { DisplayLinkCB(Address1, &LinkCB); j++; }
}
}
for (i = 0, j = 0; j < ConnectionTable.ulNumActiveBundles; i++) { BUNDLECB BundleCB;
//
// Get pointer to location in bundletable
//
Address = ConnectionTable.BundleArray + i;
if (!ReadMemory(Address, &Address1, sizeof(DWORD), &BytesRead)) { continue; }
if (Address1 != NULL) {
if (ReadMemory(Address1, &BundleCB, sizeof(BUNDLECB), &BytesRead)) { DisplayBundleCB(Address1, &BundleCB); j++; } }
}
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(CONNECTION_TABLE)); } }
DECLARE_API(bundlecb) { DWORD Address, BytesRead; BUNDLECB BundleCB;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("bundlecb <PBUNDLECB>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &BundleCB, sizeof(BUNDLECB), &BytesRead)) { return; }
if (BytesRead >= sizeof(BUNDLECB)) {
DisplayBundleCB(Address, &BundleCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(BUNDLECB)); } }
DECLARE_API(linkcb) { DWORD Address, BytesRead; LINKCB LinkCB;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("linkcb <PLINKCB>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &LinkCB, sizeof(LINKCB), &BytesRead)) { return; }
if (BytesRead >= sizeof(LINKCB)) {
DisplayLinkCB(Address, &LinkCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(LINKCB)); } }
DECLARE_API(protocolcb) { DWORD Address, BytesRead; PROTOCOLCB ProtocolCB;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("protocolcb <PPROTOCOLCB>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &ProtocolCB, sizeof(PROTOCOLCB), &BytesRead)) { return; }
if (BytesRead >= sizeof(PROTOCOLCB)) {
DisplayProtocolCB(Address, &ProtocolCB);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(PROTOCOLCB)); } }
DECLARE_API(wanpacket) { DWORD Address, BytesRead; NDIS_WAN_PACKET Packet;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("wanpacket <PNDIS_WAN_PACKET>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &Packet, sizeof(NDIS_WAN_PACKET), &BytesRead)) { return; }
if (BytesRead >= sizeof(NDIS_WAN_PACKET)) {
DisplayWanPacket(Address, &Packet);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(NDIS_WAN_PACKET)); } }
DECLARE_API(ndispacket) { DWORD Address, BytesRead; NDIS_PACKET Packet;
//
// Did they forget something...
//
if (0 == args[0]) { Usage: dprintf("ndispacket <PNDIS_PACKET>\n"); return; }
sscanf(args, "%lx", &Address);
if (!ReadMemory(Address, &Packet, sizeof(NDIS_PACKET), &BytesRead)) { return; }
if (BytesRead >= sizeof(NDIS_PACKET)) {
DisplayNdisPacket(Address, &Packet);
} else { dprintf("Only read %d bytes, expected %d bytes\n", BytesRead, sizeof(NDIS_PACKET)); } }
|