首页
社区
课程
招聘
使用
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-8-7 13:38
0
[讨论]呼吁关注程序人的社会地位~!
看到楼主的帖子我就笑了,程序人?在拆哪,除了特权阶级,不管什么动物都是木有地位的,洗洗睡吧
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-8-4 12:43
0
[转帖]IDA Pro Book, 2nd Edition
已经看过了,变化不大,看过第一版的同学没必要再看
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-8-1 20:07
0
赛门铁克招聘安全响应工程师
支持一下,一年或者两年之后,小弟来试试
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-8-1 19:42
0
[原创]编写OD插件将IDA中分析出来的函数名导入到OD中(CamelLu Functions' Names Importer)
不可能吧,我也是xp sp3,刚才我又特地从官网下载原版od,可以成功加载啊。

如果你的问题仍然没有解决,请pm你的qq给我,我远程看看
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-7-30 10:18
0
[原创]编写OD插件将IDA中分析出来的函数名导入到OD中(CamelLu Functions' Names Importer)
不知道cntrump和FishSeeWater是不是看不懂汉字

[QUOTE=CamelLu;982531]以前我一直用GODUP的map loader,但是有些时候感觉它有点问题,还有一个插件叫MapConv也有这个功能,不过我还是打算自己写一个,主要是为了学习如何编写OD插件[/QUOTE]
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-7-23 14:17
0
[原创]编写OD插件将IDA中分析出来的函数名导入到OD中(CamelLu Functions' Names Importer)
#include <windows.h>
#include <string.h>

#include "plugin.h"

#pragma comment(lib,"OLLYDBG.LIB")
static HINSTANCE hinst = NULL;
static HWND hwnd = NULL;
BOOL WINAPI DllEntryPoint(HINSTANCE hinstance,DWORD dwreason,LPVOID lpvreserved) 
{
    if (dwreason==DLL_PROCESS_ATTACH)
        hinst=hinstance;                          
    return 1;                           
}

//下面四个函数全都是插件回调函数,只有前两个函数是编写OD插件必须有的!!!
//ODBG_PluginData这个函数是必须有的,作用就是设置插件的名字(在OD的Plugin)
extc int _export cdecl ODBG_Plugindata(char shortname[32]) 
{
    strcpy(shortname,"CamelLu");       
    return PLUGIN_VERSION;
}
//ODBG_Plugininit这个函数也是必须有的,看名字就知道是用来做一些初始化工作啦
//ollydbgversion参数可以用来检查当前OD的版本,确保插件运行在兼容的OD版本上,hw是OD主窗口的句柄
extc int _export cdecl ODBG_Plugininit(int ollydbgversion,HWND hw,ulong *features) 
{
    if (ollydbgversion < PLUGIN_VERSION)
    {
        MessageBoxW(hw,L"CamelLu is not compatible with your Ollydbg version!",0,0);
        return -1;
    }
    hwnd = hw;
    return 0;
}

//ODBG_Pluginmenu这个函数是用来添加菜单的,每个菜单项之间用'|'字符隔开
extc int _export cdecl ODBG_Pluginmenu(int origin,char data[4096],void *item) 
{
    if (origin == PM_MAIN)
        strcpy(data,"0&Load functions\' names|1&About");
    return 1;
}
//ODBG_Pluginaction函数用于添加响应ODBG_Pluginmenu函数添加的菜单,很简单,看看下面的代码就明白了
extc void _export cdecl ODBG_Pluginaction(int origin,int action,void *item) 
{
    OPENFILENAME ofn;     
    wchar_t wszFile[MAX_PATH]; 
    unsigned char *pBuffer = NULL;
    unsigned char *pLocate = NULL;
    unsigned char *pDellimiter = NULL;
    unsigned char *pTemp = NULL;
    DWORD dwFileSize = 0;
    DWORD dwBytesRead = 0;
    DWORD dwImageBase = 0;
    DWORD dwAddr = 0;
    char szBuffer[10];
    t_table *table = NULL;
    t_sorted *sorted = NULL;
    t_module *module = NULL;
    HANDLE hFile = INVALID_HANDLE_VALUE;
    int nIndex = 0;
    if (origin == PM_MAIN)
        if (action == 0)
        {
   
            ZeroMemory(&ofn, sizeof(ofn));
            ofn.lStructSize = sizeof(ofn);
            ofn.hwndOwner = hwnd;
            ofn.lpstrFile = wszFile;
            ofn.lpstrFile[0] = L'\0';
            ofn.nMaxFile = sizeof(wszFile);
            ofn.lpstrFilter = L".lu\0*.lu\0";
            ofn.nFilterIndex = 1;
            ofn.lpstrFileTitle = NULL;
            ofn.nMaxFileTitle = 0;
            ofn.lpstrInitialDir = NULL;
            ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

            if (GetOpenFileName(&ofn)==TRUE) 
            {
                if (STAT_NONE == _Getstatus())
                {
                    MessageBoxW(hwnd,L"No debugee now!!!",0,0);
                    return;
                }
                hFile = CreateFileW(
                    wszFile,
                    GENERIC_READ,
                    FILE_SHARE_READ,
                    NULL,
                    OPEN_EXISTING,
                    FILE_ATTRIBUTE_NORMAL,
                    NULL);
                if (INVALID_HANDLE_VALUE == hFile)
                {
                    MessageBoxW(hwnd,L"Failed to open .lu file!",0,0);
                    return;
                }
                dwFileSize = GetFileSize(hFile,NULL);
                if (INVALID_FILE_SIZE == dwFileSize)
                {
                    MessageBoxW(hwnd,L"GetFileSize failed!",0,0);
                    CloseHandle(hFile);
                    return;
                }
                pBuffer = VirtualAlloc(
                    NULL,
                    dwFileSize + 1 * sizeof(unsigned char),
                    MEM_COMMIT,
                    PAGE_READWRITE
                    );
                if (NULL == pBuffer)
                {
                    MessageBoxW(hwnd,L"VirtualAlloc failed!",0,0);
                    CloseHandle(hFile);
                    return;
                }
                if (!ReadFile(
                    hFile,
                    pBuffer,
                    dwFileSize,
                    &dwBytesRead,
                    NULL)
                    )
                {
                    MessageBoxW(hwnd,L"ReadFile failed!",0,0);
                    VirtualFree(pBuffer,0,MEM_RELEASE);
                    CloseHandle(hFile);
                    return;
                }
                CloseHandle(hFile);
                table = (t_table*)_Plugingetvalue(VAL_MODULES);
                if (NULL == table)
                {
                    MessageBoxW(hwnd,L"Get modules failed!",0,0);
                    VirtualFree(pBuffer,0,MEM_RELEASE);
                    CloseHandle(hFile);
                    return;
                }
                sorted = &table->data;
                for (nIndex = 0;nIndex < sorted->n;++nIndex)
                {
                    module = (t_module *)((DWORD)sorted->data + nIndex * sorted->itemsize);
                    if (0 == strcmp(module->path,_Plugingetvalue(VAL_EXEFILENAME)))
                    {
                        dwImageBase = module->base;
                        break;
                    }
                }
                pLocate = pBuffer;
                pDellimiter = strstr(pLocate,"\r\n");
                while (*(pDellimiter + 2) != 0)
                {
                    pTemp = VirtualAlloc(NULL,pDellimiter - pLocate + 1 * sizeof(unsigned char),MEM_COMMIT,PAGE_READWRITE);
                    if (NULL == pTemp)
                    {
                        MessageBoxW(hwnd,L"VirtualAlloc in loop failed!",0,0);
                        VirtualFree(pBuffer,0,MEM_RELEASE);
                        return;
                    }
                    strncpy(pTemp,pLocate,pDellimiter - pLocate);
                    sscanf(pTemp,"%X-",&dwAddr);
                    _Quickinsertname(dwImageBase + dwAddr,NM_LABEL,strchr(pTemp,'-') + 1 * sizeof(unsigned char));
                    VirtualFree(pTemp,0,MEM_RELEASE);
                    pLocate = pDellimiter + 2;
                    pDellimiter = strstr(pLocate,"\r\n");
                }
                _Mergequicknames();
                VirtualFree(pBuffer,0,MEM_RELEASE);
                MessageBoxW(hwnd,L"I am done^ ^",L"CamelLu",MB_OK);
            }

        }
        else if (action == 1)
        {
            MessageBoxW(hwnd,L"CamelLu Functions\' Names Importer\r\nWritten by CamelLu 2011.7.19\r\n",L"Camellu",MB_ICONINFORMATION);
        }

}


请下载本楼层的附件吧
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-7-18 19:23
0
[原创]xxxx面试病毒分析师日记[已经更新]
支持韬哥,虽然韬哥有些问题可能答得不好,技术可能不是很强,但是绝对年轻,有激情,希望xxx公司能给他一个机会。
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-5-18 13:12
0
[求助]新手求助OEP脱壳
这样的问题也问?!
明显是搞错了啊,把文件放上来大家看看吧
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-5-16 03:24
0
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-5-15 17:11
0
[求助]tElock 1.0 (private) -> tE!脱壳后修复输入表仍无法运行
脱壳后的主程序,经测试可用,到下面的地址下载吧
http://u.115.com/file/bhbl13dk#
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-4-24 16:36
0
[原创]一封写给所有人的忏悔信-------是我太执著 还是我太稚嫩
选择适合自己身体状况的运动,坚持锻炼,饮食起居保持规律!祝你好运!
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-4-7 19:07
0
[招聘]金山网络高薪诚意招聘
顶一下,招人难啊。
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-4-5 12:03
0
[讨论]想培训一批程序员自用
不错,支持涛哥。比坑爹的大学好多了。
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-4-2 12:41
0
[求助]如何得到目标进程中加载的DLL的函数地址并远程调用
http://hi.baidu.com/89419883/blog/item/97dfbf9aa2c6db036f068cb5.html
可以参考下这个
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-3-31 09:51
0
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-3-7 19:09
0
[分享]原来俺的看雪 ID 有这么一个来头
我一直把它理解成cn trump,中国王牌
雪    币: 391
活跃值: (135)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
CamelLu 3 2011-2-28 12:52
0
[原创]寡头统治
涛哥做掉寡头吧
精华数
RANk
391
雪币
135
活跃值
关注数
粉丝数
0
课程经验
0
学习收益
0
学习时长
基本信息
  能力排名: No.5342
  等    级: LV2
活跃值  活跃值:活跃值
  在线值:
  浏览人数:236
  最近活跃:2024-4-7 23:17
  注册时间:2009-07-22
勋章
能力值

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册