首页
社区
课程
招聘
[分享]第一题
2008-10-2 22:31 2107

[分享]第一题

2008-10-2 22:31
2107
向angelqkm和bambooooo 学习

过程很简单

用LORDPE在Pediy.dll增加输入表benbenxiong.dll中的BenBenXiong
修改Pediy.dll增加一个导出函数,导出benbenxiong.dll中的BenBenXiong

在注册表的这个位置可以找到IE的路径
HKEY_CLASSES_ROOT\\Applications\\iexplore.exe\\shell\\open\\command

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2008-10-2 22:38
2
0
这次是没有增加大小的版本,就是不用LORDPE,自己改~~

大小不改变,pediy.dll只改输入表和输出表,没有任何新增代码~~~
benbenxiong.dll中的导出函数,Release编译之后,代码总字节数,符合使公式变成负数的标准,源码如下:

EXPLOIT_API int BenBenXiong(void)
{
        HKEY hKey = NULL;
        LPBYTE lpbyData = NULL;
        LPSTR lpFullPath = NULL;
        char *pStart = NULL;
        char *pEnd = NULL;
        DWORD dwcbData = 0;
        int nReturn = 0;
        HANDLE hHeap = NULL;
        STARTUPINFOA si;
        PROCESS_INFORMATION pi;

        hHeap = HeapCreate(0, 0x10000, 0);
        if (!hHeap)
                goto Exit0;

        nReturn = RegOpenKeyA(HKEY_CLASSES_ROOT,
                "Applications\\iexplore.exe\\shell\\open\\command",
                &hKey);

        if (ERROR_SUCCESS != nReturn)
                goto Exit0;

        nReturn = RegQueryValueExA(hKey, NULL, NULL, NULL,
                lpbyData, &dwcbData);

        if (ERROR_SUCCESS != nReturn)
                goto Exit0;

        lpbyData = (LPBYTE)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, dwcbData);
        if (!lpbyData)
                goto Exit0;

        nReturn = RegQueryValueExA(hKey, NULL, NULL, NULL,
                lpbyData, &dwcbData);

        if (ERROR_SUCCESS != nReturn)
                goto Exit0;

        nReturn = RegCloseKey(hKey);
        if (ERROR_SUCCESS != nReturn)
                goto Exit0;

        lpFullPath = (LPSTR)HeapAlloc(hHeap, HEAP_ZERO_MEMORY, dwcbData);
        if (!lpFullPath)
                goto Exit0;

        pStart = strchr((char *)lpbyData, '\"');
        if (pStart)
        {
                pStart ++;
                pEnd = strchr(pStart, '\"');
                if (!pEnd)
                        goto Exit0;

                lstrcpynA(lpFullPath, pStart, pEnd - pStart + 1);
        }
        else
                lstrcpyA(lpFullPath, (LPCSTR)lpbyData);

        RtlZeroMemory(&si, sizeof(STARTUPINFO));
        RtlZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
        CreateProcessA(lpFullPath,
                " http://bbs.pediy.com",
                NULL, NULL, FALSE, NULL,
                NULL, NULL, &si, &pi);

        CloseHandle(pi.hThread);
        CloseHandle(pi.hProcess);
Exit0:
        HeapFree(hHeap, 0, lpFullPath);
        HeapFree(hHeap, 0, lpbyData);
        HeapDestroy(hHeap);
        return TRUE;
}

测试一下这样的答案能得多少分
上传的附件:
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
kangaroo 6 2008-10-3 11:06
3
0
笨笨雄不好意思,可能是我们这边出题的写的不够清楚让你误解了,你必需在pediy.dll原文件上进行增加代码,并导出!!!!:),请重新提交
游客
登录 | 注册 方可回帖
返回