Example #1
0
static uint32 idaapi res_unmatch(deng_t * d,uint32 n, int type)
{
	slist_t * sl;

	if (type == 0)
		sl = d->ilist;
	else
		sl = d->mlist;

	psig_t *sig = ui_access_sig(sl, n);
	
	sig->nfile = 1;
	sig->msig->nfile = 2;

	siglist_add(d->ulist, sig);
	siglist_add(d->ulist, sig->msig);

	sig->msig->msig = NULL;
	sig->msig = NULL;

	siglist_remove(sl, n - 1);

	refresh_chooser(title_unmatch);

	return 1;
}
Example #2
0
static uint32 idaapi res_match(void *obj,uint32 n)
{
	deng_t * eng = (deng_t *)obj;
	psig_t * s1, * s2;
	int option;
	ea_t ea = BADADDR;
	size_t i;

	const char format[] =
			"STARTITEM 0\n"

			"Set Match\n"
			"<Match address:$:32:32::>\n\n"

			"Options :\n" 
			"<Propagate :C>>\n\n"
			;

	option = 1;
	if (AskUsingForm_c(format, &ea, &option))
	{
		s1 = ui_access_sig(eng->ulist, n);

		for (i=0; i<eng->ulist->num; i++)
		{
			s2 = eng->ulist->sigs[i];

			if (s2->startEA != ea || (s2->nfile == s1->nfile))
				continue;

			sig_set_matched_sig(s1, s2, DIFF_MANUAL);
			propagate_match(eng, s1, s2, option);

			refresh_chooser(title_match);
			refresh_chooser(title_identical);

			return 1;
		}

		warning("Address '%a' is not valid.", ea);
		return 0;
	}

	return 1;
}
Example #3
0
static uint32 idaapi res_flagged(void *obj,uint32 n)
{
	psig_t *sig = ui_access_sig(((deng_t *)obj)->mlist, n);

	sig->flag = !sig->flag;

	refresh_chooser(title_match);

	return 1;
}
Example #4
0
static uint32 idaapi res_itom(void *obj,uint32 n)
{
	deng_t * d = (deng_t *)obj;
	psig_t *sig = ui_access_sig(d->ilist, n);

	sig->mtype = sig->msig->mtype = DIFF_MANUAL;

	siglist_add(d->mlist, sig);
	siglist_remove(d->ilist, n - 1);

	refresh_chooser(title_match);

	return 1;
}
//---------------------------------------------------------------------------
void x86seh_ctx_t::refresh()
{
  get_sehlist();
  refresh_chooser(title.c_str());
}
Example #6
0
 void do_refresh()
 {
   refresh_chooser(chobj->title);
 }