- Make -A output more verbose
  - Dump all archs with -x when no one is specified using -a
* cleanup TODO
This commit is contained in:
Nibble 2010-09-25 12:33:30 +02:00
parent 333fbbf55b
commit 0a09b20cc0
2 changed files with 34 additions and 15 deletions

18
TODO
View File

@ -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
--------

View File

@ -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);