* rabin2
- Make -A output more verbose - Dump all archs with -x when no one is specified using -a * cleanup TODO
This commit is contained in:
parent
333fbbf55b
commit
0a09b20cc0
18
TODO
18
TODO
|
@ -26,11 +26,14 @@ Questions
|
|||
|
||||
TODO nibble
|
||||
-----------
|
||||
* r_anal
|
||||
- use r_anal_value everywhere
|
||||
* x86im
|
||||
- make x86_x86im the default backend for x86 analysis
|
||||
- implement analysis for more instructions
|
||||
* r_bin
|
||||
- Better way to fix got_offset issue?
|
||||
* Cx/CX are not displayed in disasm as they should.. (C! must die)
|
||||
* Better way to fix got_offset issue?
|
||||
* use r_anal_value everywhere in r_anal
|
||||
* make x86_x86im the default backend for x86 analysis
|
||||
* implement analysis for more instructions in x86_x86im
|
||||
* diff code analysis
|
||||
- diff two programs
|
||||
1st level:
|
||||
|
@ -40,9 +43,10 @@ TODO nibble
|
|||
- check all strings
|
||||
2nd level:
|
||||
- basic block level diffing (output in graph mode)
|
||||
* big-ssl.c big-gmp.c ...
|
||||
* implement GMP in util/big.c
|
||||
- http://etutorials.org/Programming/secure+programming/Chapter+7.+Public+Key+Cryptography/7.5+Generating+a+Prime+Number+Testing+for+Primality/
|
||||
* GMP
|
||||
- big-ssl.c big-gmp.c ...
|
||||
- implement GMP in util/big.c
|
||||
- http://etutorials.org/Programming/secure+programming/Chapter+7.+Public+Key+Cryptography/7.5+Generating+a+Prime+Number+Testing+for+Primality/
|
||||
|
||||
TODO edu
|
||||
--------
|
||||
|
|
|
@ -118,12 +118,25 @@ static int rabin_show_main() {
|
|||
return R_TRUE;
|
||||
}
|
||||
|
||||
static int rabin_extract() {
|
||||
if (!r_file_dump (output, bin->curarch->buf->buf, bin->curarch->size)) {
|
||||
eprintf ("Error extracting %s_%i\n",
|
||||
bin->curarch->info->arch, bin->curarch->info->bits);
|
||||
return R_FALSE;
|
||||
} else eprintf ("%s created\n", output);
|
||||
static int rabin_extract(int all) {
|
||||
char out[512];
|
||||
int i;
|
||||
if (all) {
|
||||
for (i=0; i<bin->narch; i++) {
|
||||
snprintf (out, sizeof (out), "%s.%s_%i", output,
|
||||
bin->arch[i].info->arch, bin->arch[i].info->bits);
|
||||
if (!r_file_dump (out, bin->arch[i].buf->buf, bin->arch[i].size)) {
|
||||
eprintf ("Error extracting %s\n", out);
|
||||
return R_FALSE;
|
||||
} else eprintf ("%s created\n", out);
|
||||
}
|
||||
} else {
|
||||
if (!r_file_dump (output, bin->curarch->buf->buf, bin->curarch->size)) {
|
||||
eprintf ("Error extracting %s_%i\n",
|
||||
bin->curarch->info->arch, bin->curarch->info->bits);
|
||||
return R_FALSE;
|
||||
} else eprintf ("%s created\n", output);
|
||||
}
|
||||
return R_TRUE;
|
||||
}
|
||||
|
||||
|
@ -424,7 +437,9 @@ static void rabin_list_archs() {
|
|||
int i;
|
||||
|
||||
for (i=0; i<bin->narch; i++)
|
||||
printf ("%s_%i\n", bin->arch[i].info->arch, bin->arch[i].info->bits);
|
||||
printf ("%s_%i %s (%s endian)\n", bin->arch[i].info->arch,
|
||||
bin->arch[i].info->bits, bin->arch[i].info->machine,
|
||||
bin->arch[i].info->big_endian?"big":"litle");
|
||||
}
|
||||
|
||||
static int rabin_show_fields() {
|
||||
|
@ -759,7 +774,7 @@ int main(int argc, char **argv)
|
|||
if (action&ACTION_SRCLINE)
|
||||
rabin_show_srcline(at);
|
||||
if (action&ACTION_EXTRACT)
|
||||
rabin_extract();
|
||||
rabin_extract(arch==NULL);
|
||||
if (op != NULL && action&ACTION_OPERATION)
|
||||
rabin_do_operation (op);
|
||||
|
||||
|
|
Loading…
Reference in New Issue