能力值:
( LV2,RANK:10 )
|
-
-
2 楼
经过修改后的插件,确实非常好用。感谢heng9ml,感谢老罗。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
好用,感谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
好用,感谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
老罗的论坛几个月都没开了,是不是不开了?
|
能力值:
(RANK:10 )
|
-
-
6 楼
最初由 heng9ml 发布 peter,您好! 没关系,我开源就是为了让大家可以修改的 :)
........
那就可以。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
增强版的插件十分好用,谢谢heng9ml。
|
能力值:
( LV13,RANK:970 )
|
-
-
8 楼
听说开源是变相不维护、不负责
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
heng9ml留个QQ联系方式吧!
我的QQ:25647267
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
能不能提供改后的source?
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
很简单啊,加了2行代码而已:
函数最后2句就是我加的,其它没动(大家要感谢罗前辈才是!):
name=strlwr((char *)g_strings[pb->index].c_str());//string 转为char *类型
m=Insertname(pb->addr,NM_COMMENT,name);
//DRAWFUNC
int cdecl UStrRefGetText(
char *s,//指向输出字符,长度至少!<2*TEXTLEN
char *mask,//数组,输出字串的每个字符私有图像属性
int *select,//指向所有输出字串的共同图像属性
t_sortheader *ph,//标准表格窗口,指向已解码的分类元素;自定义窗口,指向用户定义的结构t_table
int column //从0开始的列索引,注意:如果列完全不可见,od将不能使用本函数
)
{
t_disasm da;//反汇编结构
int n = 0;
int m =0;
char * name;
t_memory *pmem;//内存结构
ulong cmdsize;
uchar *pdecode;//保存解码数据
ulong decodesize;
unsigned char cmd[MAXCMDSIZE];
t_ustrref *pb = (t_ustrref *)ph;//自定义结构
if (pb->iscureip) // Is Current EIP
*select = DRAW_HILITE;//高亮文本
else
*select = NULL;
switch (column)
{
case 0: // Address
/*sprintf的作用是将一个格式化的字符串输出到一个目的字符串中,而printf是将一个格式化的字符串输出到屏幕。sprintf的第一个参数应该是目的字符串*/
n = sprintf((char *)s, "%08X", pb->addr);
break;
case 1: // Disassembly
pmem = Findmemory(pb->addr);
if (NULL == pmem)
{
*select = DRAW_GRAY;//变灰文本
return sprintf((char *)s, "???");
}
cmdsize = pmem->base + pmem->size - pb->addr;
if (cmdsize > MAXCMDSIZE)
cmdsize = MAXCMDSIZE;
if (
//ulong Readmemory(void *buf,ulong addr,ulong size,int mode);
cmdsize != Readmemory(cmd, pb->addr, cmdsize, MM_RESTORE|MM_SILENT)
)
{
*select = DRAW_GRAY;//变灰文本
return sprintf((char *)s, "???");
}
/*char *Finddecode(ulong addr,ulong *psize);
从指定地址开始读取解码数据,成功返回解码数据,psize=数据大小;未成功则返回NULL,psize=0
*/
pdecode = Finddecode(pb->addr, &decodesize);
if (decodesize < cmdsize)
pdecode = NULL;
/*ulong Disasm(char *src,ulong srcsize,ulong srcip,char *srcdec,t_disasm *disasm,int disasmmode,ulong threadid);
汇编指令到srcdec结构
*/
Disasm(cmd, cmdsize, pb->addr, pdecode, &da, DISASM_CODE, 0);
n = sprintf((char *)s, "%s", da.result);
break;
case 2: // Text String
n = sprintf((char *)s, "%s", g_strings[pb->index].c_str());
break;
}[COLOR=blue]
//将字符参考添加到反汇编窗口
//int Insertname(ulong addr,int type,char *name);//函数原型
name=strlwr((char *)g_strings[pb->index].c_str());//string 转为char *类型
m=Insertname(pb->addr,NM_COMMENT,name);[/COLOR]
return n;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
非常感谢!
|
能力值:
(RANK:10 )
|
-
-
13 楼
最初由 heng9ml 发布 很简单啊,加了2行代码而已: 函数最后2句就是我加的,其它没动(大家要感谢罗前辈才是!): name=strlwr((char *)g_strings[pb->index].c_str());//string 转为char *类型 m=Insertname(pb->addr,NM_COMMENT,name); [CODE] ........
我自己的看法是这样的。
其实你这样就完全没必要,引用你的:
很简单啊,加了2行代码而已:
函数最后2句就是我加的,其它没动(大家要感谢罗前辈才是!)
我觉得是多余的,既然同意,没必要啊!
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
我晕,不懂林版主这么说的意思。
实际上真的只添加那么点代码,本人没什么保留的,大家需要,我改天上传完整的!
|
能力值:
( LV4,RANK:50 )
|
-
-
15 楼
|
能力值:
( LV9,RANK:170 )
|
-
-
16 楼
好贴得收藏~~
论坛无收藏~~
见好贴就回~~
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
去看看哎,到底有多好
|