Skip to content

Commit 65f4da5

Browse files
committed
csearch range support
1 parent 6beda85 commit 65f4da5

File tree

1 file changed

+38
-13
lines changed

1 file changed

+38
-13
lines changed

source/main.c

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ int argmain(int argc, char **argv)
389389

390390
if (!strcmp(argv[0], "csearch"))
391391
{
392-
if (argc != 2)
392+
if (argc != 2 || argc != 3)
393393
goto help;
394394

395395
if (search == VAL_NONE)
@@ -398,26 +398,51 @@ int argmain(int argc, char **argv)
398398
return 0;
399399
}
400400

401-
u8 u8NewVal = 0;
402-
u16 u16NewVal = 0;
403-
u32 u32NewVal = 0;
404-
u64 u64NewVal = 0;
401+
u8 u8NewLowVal = 0;
402+
u16 u16NewLowVal = 0;
403+
u32 u32NewLowVal = 0;
404+
u64 u64NewLowVal = 0;
405+
406+
u8 u8NewUppVal = 0;
407+
u16 u16NewUppVal = 0;
408+
u32 u32NewUppVal = 0;
409+
u64 u64NewUppVal = 0;
405410

406411
if (search == VAL_U8)
407412
{
408-
u8NewVal = strtoul(argv[1], NULL, 10);
413+
u8NewLowVal = strtoul(argv[1], NULL, 10);
409414
}
410415
else if (search == VAL_U16)
411416
{
412-
u16NewVal = strtoul(argv[1], NULL, 10);
417+
u16NewLowVal = strtoul(argv[1], NULL, 10);
413418
}
414419
else if (search == VAL_U32)
415420
{
416-
u32NewVal = strtoul(argv[1], NULL, 10);
421+
u32NewLowVal = strtoul(argv[1], NULL, 10);
417422
}
418423
else if (search == VAL_U64)
419424
{
420-
u64NewVal = strtoull(argv[1], NULL, 10);
425+
u64NewLowVal = strtoull(argv[1], NULL, 10);
426+
}
427+
428+
if (argc == 3)
429+
{
430+
if (search == VAL_U8)
431+
{
432+
u8NewUppVal = strtoul(argv[2], NULL, 10);
433+
}
434+
else if (search == VAL_U16)
435+
{
436+
u16NewUppVal = strtoul(argv[2], NULL, 10);
437+
}
438+
else if (search == VAL_U32)
439+
{
440+
u32NewUppVal = strtoul(argv[2], NULL, 10);
441+
}
442+
else if (search == VAL_U64)
443+
{
444+
u64NewUppVal = strtoull(argv[2], NULL, 10);
445+
}
421446
}
422447

423448
u64 newSearchSize = 0;
@@ -427,7 +452,7 @@ int argmain(int argc, char **argv)
427452
{
428453
u8 val;
429454
svcReadDebugProcessMemory(&val, debughandle, searchArr[i], sizeof(u8));
430-
if (val == u8NewVal)
455+
if (val == u8NewLowVal || (argc == 3 && (val >= u8NewLowVal && val <= u8NewUppVal)))
431456
{
432457
printf("Got a hit at %lx!\r\n", searchArr[i]);
433458
searchArr[newSearchSize++] = searchArr[i];
@@ -437,7 +462,7 @@ int argmain(int argc, char **argv)
437462
{
438463
u16 val;
439464
svcReadDebugProcessMemory(&val, debughandle, searchArr[i], sizeof(u16));
440-
if (val == u16NewVal)
465+
if (val == u16NewLowVal || (argc == 3 && (val >= u16NewLowVal && val <= u16NewUppVal)))
441466
{
442467
printf("Got a hit at %lx!\r\n", searchArr[i]);
443468
searchArr[newSearchSize++] = searchArr[i];
@@ -447,7 +472,7 @@ int argmain(int argc, char **argv)
447472
{
448473
u32 val;
449474
svcReadDebugProcessMemory(&val, debughandle, searchArr[i], sizeof(u32));
450-
if (val == u32NewVal)
475+
if (val == u32NewLowVal || (argc == 3 && (val >= u32NewLowVal && val <= u32NewUppVal)))
451476
{
452477
printf("Got a hit at %lx!\r\n", searchArr[i]);
453478
searchArr[newSearchSize++] = searchArr[i];
@@ -457,7 +482,7 @@ int argmain(int argc, char **argv)
457482
{
458483
u64 val;
459484
svcReadDebugProcessMemory(&val, debughandle, searchArr[i], sizeof(u64));
460-
if (val == u64NewVal)
485+
if (val == u64NewLowVal || (argc == 3 && (val >= u64NewLowVal && val <= u64NewUppVal)))
461486
{
462487
printf("Got a hit at %lx!\r\n", searchArr[i]);
463488
searchArr[newSearchSize++] = searchArr[i];

0 commit comments

Comments
 (0)