Add success splash on load, add list functionality, update bins

git-svn-id: file:///home/svn/framework3/trunk@6085 4d416f70-5f16-0410-b530-b9f4589650da
unstable
pusscat 2009-01-07 21:21:16 +00:00
parent fa334604b9
commit 45fb3c4a82
14 changed files with 63 additions and 11 deletions

Binary file not shown.

Binary file not shown.

View File

@ -13,8 +13,6 @@ WINDBG_EXTENSION_APIS ExtensionApis;
ULONG TargetMachine;
BOOL Connected;
extern struct trackedBuf *trackedBufList;
// Queries for all debugger interfaces.
extern "C" HRESULT
ExtQuery(PDEBUG_CLIENT4 Client)
@ -130,13 +128,12 @@ DebugExtensionInitialize(PULONG Version, PULONG Flags)
DebugControl->Release();
}
DebugClient->Release();
trackedBufList = NULL;
dprintf("[Byakugan] Successfully loaded!\n");
DebugClient->Release();
return Hr;
return (Hr);
}

View File

@ -119,7 +119,13 @@ HRESULT CALLBACK jutsu(PDEBUG_CLIENT4 Client, PCSTR args) {
bufName = strtok(NULL, " ");
bufSize = strtok(NULL, " ");
bufPatt = strtok(NULL, " ");
trackValJutsu(bufName, strtoul(bufSize, NULL, 10), strtoul(bufPatt, NULL, 0x10));
if (bufName == NULL) {
listTrackedVals();
} else if (bufSize == NULL) {
listTrackedValByName(bufName);
} else
trackValJutsu(bufName, strtoul(bufSize, NULL, 10), strtoul(bufPatt, NULL, 0x10));
}
if (!_stricmp(command, "searchOpcode")) {
char *instructions;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -34,6 +34,57 @@ void helpJutsu(void) {
return;
}
void listTrackedVals() {
struct trackedVal *newTrackedVal;
if (trackedValList == NULL) {
dprintf("[J] Currently tracking no primitive values.\n");
return;
}
dprintf("[J] Currently tracking:\n");
newTrackedVal = trackedValList;
while (newTrackedVal != NULL) {
dprintf("\tName: %s\t\tSize: %d\tCandidates: %d\n",
newTrackedVal->valName, newTrackedVal->valSize, newTrackedVal->candidates);
newTrackedVal = newTrackedVal->next;
}
}
void listTrackedValByName(char *name) {
struct trackedVal *newTrackedVal;
struct valInstance *curr;
newTrackedVal = trackedValList;
if (newTrackedVal == NULL) goto nada;
while (newTrackedVal != NULL) {
if (!_stricmp(newTrackedVal->valName, name))
break;
newTrackedVal = newTrackedVal->next;
}
if (newTrackedVal) {
curr = newTrackedVal->instances;
if (curr != NULL)
dprintf("[J] Currently tracking %d candidates for %s:\n",
newTrackedVal->candidates, newTrackedVal->valName);
else
goto nada;
while (curr != NULL) {
dprintf("\tAddress: 0x%08x\n", curr->address);
curr = curr->next;
}
return;
}
nada:
dprintf("[J] No candidates are being tracked for %s.\n", name);
}
void trackValJutsu(char *name, DWORD size, DWORD value) {
struct trackedVal *newTrackedVal, *parent = NULL;
struct valInstance *last, *curr;
@ -102,10 +153,6 @@ void trackValJutsu(char *name, DWORD size, DWORD value) {
return;
}
void listTrackedVals() {
}
void bindJutsu(char *bindPort) {
HANDLE hThread;
DWORD dwThreadId;

View File

@ -84,6 +84,8 @@ void showRequestsJutsu(void);
void hunterJutsu(void);
void returnAddressHuntJutsu(void);
void trackValJutsu(char *name, DWORD size, DWORD value);
void listTrackedVals(void);
void listTrackedValByName(char *name);
ULONG64 allocateMemoryBlock(unsigned long);
ULONG64 searchMemory(unsigned char * byteBuffer, unsigned long length);
DWORD findAllVals(unsigned char *byteBuffer, BYTE size, struct valInstance **instance);