STEGANOGRAPHED IMAGE :) 复制 HEXEDIT 和 RIP

这个答案与hittraceollydbg 的特性有关
附件是一个odbg110插件hitaid.dll
,dll 已7zipped and hexedited作为 jpg
下载 hexedit上传到这里,delete first 10 bytes并save as hitaid.7z
使用 7zipextract hitaid.dll从 存档
ollydbg 有一个叫做Hittrace
这个插件的特性,它利用这个特性来实现查询
把DLL中odbg110 plugin path
open calc.exe的odbg
analyse主模块即的calc.exe
right click在disasm window选择hittrace右键菜单
中选择add all recognized procedures submenu
所有公认的程序将marked with grey marker
run与exe文件f9
是被击中将所有指令colored red
打ctrl+L从通过所有命中DISASM窗口周期的开始
使用插件删除所有命中
,如果需要的要素说button 7 is clicked,现在
,新的代码路径pertains to button 7将是红色
的新作可以通过选择反汇编窗口开始,然后按CTRL + L到达
插件可以用来repeatedly以去除点击应用程序need not be 暂停交互,您可以根据需要在新代码路径中设置 f2 断点,并通过 disasm 上下文菜单重新启用 hittrace
源代码如下
#include <windows.h>
#include "plugin.h"
#pragma warning(disable:4100)
BOOL WINAPI DllEntryPoint(HINSTANCE hi,DWORD reason,LPVOID reserved)
{
return 1;
};
extc int _export cdecl ODBG_Plugindata(char shortname[32])
{
strcpy(shortname,"HitAid");
return PLUGIN_VERSION;
};
extc int _export cdecl ODBG_Plugininit( int ollydbgversion,HWND hw,ulong *features)
{
Addtolist(0,0,"Hit Trace Aid Plugin by blabb");
return 0;
};
extc int _export cdecl ODBG_Pluginmenu(int origin,char data[4096],void *item)
{
switch (origin)
{
case PM_MAIN:
strcpy(data,"0 &HitAid");
return 1;
default: break;
};
return 0;
};
extc void _export cdecl ODBG_Pluginaction(int origin,int action,void *item)
{
uchar *buff , *retu;
unsigned long psize, i , addr;
t_module * mod = Findmodule( Plugingetvalue(VAL_MAINBASE) );
addr = mod->codebase;
if (origin==PM_MAIN)
{
switch (action)
{
case 0:
retu = Findhittrace ( addr, &buff,&psize);
for (i=0;i < psize;i++ ) {
if ( retu[i] != ( TR_TRACE | TR_HIT ) )
{
continue;
}
Modifyhittrace((addr+i) , (addr+i+1),ATR_REMOVE);
}
break;
default:
break;
};
};
};
使用 vs 2010 express 编译并由 alex 修改 pdk 可从 www.ollydbg.de 下载
cl /nologo /W4 /O1 /J /analyze /LD /WX /D"_CRT_SECURE_NO_WARNINGS" hitaid.cpp
/link /subsystem:windows /dll /ENTRY:DllEntryPoint/MERGE:.rdata=.text .\ollydbgvc7.lib