张志松
记录工作点滴,留下人生轨迹。(zezese@163.com)
posts - 68,  comments - 11,  trackbacks - 0
    '用ServerXMLHTTP从ip138获取IP地址
   
    Dim WinHttpReq
   
    Set WinHttpReq = CreateObject("Msxml2.ServerXMLHTTP")
   
    WinHttpReq.Open "GET", "http://www.ip138.com/ips1388.asp"
   
    WinHttpReq.Send
   
    '正则表达式解析出外网IP
   
    Dim MyRegExp
   
    Set MyRegExp = CreateObject("VBScript.RegExp")
   
    MyRegExp.Pattern = "((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)"
    MyRegExp.IgnoreCase = True
    MyRegExp.Global = True
   
    Dim Matches
   
    Set Matches = MyRegExp.Execute(WinHttpReq.ResponseText)
      
    MsgBox Matches.Item(0).Value
posted @ 2010-11-05 21:16 张志松 阅读(2177) | 评论 (1)编辑 收藏

BOOL IsCtrlPressed()
{
 return ((GetKeyState(VK_CONTROL) & (1<<(sizeof(SHORT)*8-1))) != 0);
}

BOOL IsAltPressed()
{
 return ((GetKeyState(VK_MENU) & (1<<(sizeof(SHORT)*8-1))) != 0);
}

BOOL IsShiftPressed()
{
 return ((GetKeyState(VK_SHIFT) & (1<<(sizeof(SHORT)*8-1))) != 0);
}

posted @ 2010-10-18 10:53 张志松 阅读(2406) | 评论 (3)编辑 收藏

首先要导入jmail.dll 

#import "jmail.dll"

还要初始化COM套间

CoInitialize(NULL);

调用代码如下

 typedef HRESULT (__stdcall* pfnDllGetClassObject)(REFCLSID, REFIID, void**);

 HINSTANCE hDllInst = LoadLibrary(_T("jmail.dll"));

 pfnDllGetClassObject fnDllGetClassObject = (pfnDllGetClassObject)GetProcAddress(hDllInst, "DllGetClassObject");

 if (fnDllGetClassObject != NULL)
 {
  IClassFactory* lpClassFactory = NULL;

  HRESULT hr = (fnDllGetClassObject)(__uuidof(jmail::Message), IID_IClassFactory, (void**)&lpClassFactory);

  if (SUCCEEDED(hr) && (lpClassFactory != NULL))
  {
   IUnknown* lpUnknown = NULL;

   hr = lpClassFactory->CreateInstance(NULL, __uuidof(jmail::IMessage), (void**)&lpUnknown);

   if (SUCCEEDED(hr) && (lpUnknown != NULL))
   {
    jmail::IMessagePtr MyMessage(lpUnknown);

    //不抛出错误
    MyMessage->PutSilent(VARIANT_TRUE);

    MyMessage->PutISOEncodeHeaders(VARIANT_TRUE);

    //字符集,缺省为"US-ASCII"
    MyMessage->PutCharset(_T("GB2312"));
    
    //发件人姓名
    MyMessage->PutFromName(_T("test"));
    
    //发件人邮箱
    MyMessage->PutFrom(_T("***@***.com"));

    //发件人邮件用户名
    MyMessage->PutMailServerUserName(_T("***"));

    //发件人邮件密码
    MyMessage->PutMailServerPassWord(_T("***"));

    //设置邮件标题
    MyMessage->PutSubject(_T("邮件标题"));

    //邮件内容
    MyMessage->PutBody(_T("邮件内容"));

    //发送对象  
    MyMessage->AddRecipient(_T("***@***.com"), _T(""), _T(""));

    //Jmail发送的方法
    MyMessage->Send(_T("smtp.***.com"), VARIANT_FALSE);

    MyMessage->Close();

    MyMessage.Release();
   }

   lpClassFactory->Release();
  }
 }

 FreeLibrary(hDllInst);

posted @ 2010-10-09 13:44 张志松 阅读(3260) | 评论 (3)编辑 收藏

C:\WINDOWS\system32\drivers\swmidi.sys 被篡改了,替换成原来的文件重启就可以。


解决办法参考:http://hi.baidu.com/fuxudong/blog/item/8e363cf4fe85c162ddc474ee.html


关于netbios.sys 被检测为危险程序.netbios.sys无法删除

1 某个流氓软件篡改了系统文件netbios.sys

2 这个netbios.sys hook了IoCreateFile函数吧导致不能正常删除

3 使用antirootkit 工具 unhook  netbios.sys的挂钩,删除以后使用正常的netbios.sys替换即可


变种1 采用的是插apc的方式注入explorer.exe

变种2 病毒原理分析,感谢楼下的“猪”同学(目前无法删除的那个)

1. 调用PsSetCreateProcessNotifyRoutine 挂一个进程回调.

2. 过滤函数中判断若子进程iexplore.exe的父进程, 只关心以下3个进程名(已加密):
explorer.exe
svchost.exe
lsass.exe
若满足以上条件则进入步骤3,否则放行之

3. 硬编码通过 PID->EPROCESS->PEB->ProcessParameters ->CommandLine 得到命令行内容
4. 解密病毒网址,解密后内容为:http://www.ie7.com.cn
5. 修改命令行内容为:"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.ie7.com.cn

posted @ 2010-08-28 13:04 张志松 阅读(482) | 评论 (0)编辑 收藏

      用Dependency Walker 打开系统目录下的ADVAPI32.DLL,可以发现ADVAPI32.DLL导出了MD5的三个函数:MD5Init,MD5Update,MD5Final。如下图所示:



这个三个函数的原型如下:

void WINAPI MD5Init(MD5_CTX* lpCtx);
void WINAPI MD5Update(MD5_CTX* lpCtx, const void * lpBuf, unsigned int nLen);
void WINAPI MD5Final(MD5_CTX* lpCtx);

其中MD5_CTX结构体为:

struct MD5_CTX
{
 ULONG num[2];   /* number of _bits_ handled mod 2^64 */
 ULONG buf[4];   /* scratch buffer */
 BYTE  input[64];  /* input buffer */
 BYTE  digest[16];  /* actual digest after MD5Final call */
};

现在我们用这个三个函数来计算字符串的MD5:

CString CalcStringMD5(CString strSrc)
{
 MD5_CTX ctx = {0};

 MD5Init(&ctx);

 MD5Update(&ctx, strSrc.GetBuffer(), strSrc.GetLength());

 MD5Final(&ctx);

 strSrc.ReleaseBuffer();

 TCHAR szTmp[33] = {0};

 for (UINT i = 0; i < 16; i++)
 {
  wsprintf(szTmp + i * 2, _T("%02x"), ctx.digest[i]);
 }

 CString strMD5 = szTmp;

 return strMD5;
}


该函数只支持多字节编码,UNICODE编码请自行转换,编译需要MD5.lib链接库。以上代码在VS2003+XP下测试成功。

posted @ 2010-07-25 16:01 张志松 阅读(1591) | 评论 (0)编辑 收藏

template <class R, class P1, class P2>
class IDelegate
{
public:
 virtual R Invoke(P1, P2) = 0;
};


template <class T, class R, class P1, class P2>
class CDelegate : public IDelegate<R, P1, P2>
{
protected:

 typedef R (T::*pfnHandle)(P1, P2);

 const pfnHandle m_pfn;

 T* const m_pThis;

public:

 CDelegate(T* const pThis, const pfnHandle pfn)
 :m_pThis(pThis), m_pfn(pfn)
 {
  if (m_pThis == NULL || m_pfn == NULL)
  {
   throw;
  } 
 }

 virtual R Invoke(P1 p1, P2 p2)
 {
  return (m_pThis->*m_pfn)(p1, p2);
 }

};

class CDelegateSource
{
public:
 CDelegateSource()
 : m_lpCallBack(NULL)
 {
 }

 void SetCallBack(IDelegate<bool, int, int>* newVal)
 {
  m_lpCallBack = newVal;
 }

 void DoSomething()
 {
  for (int i = 0; i < 10; i++)
  {   
   if (m_lpCallBack != NULL)
   {
    m_lpCallBack->Invoke(i, i * i);
   }
  }
 }

private:

 IDelegate<bool, int, int>* m_lpCallBack;

};

class CDelegateTester
{
private:

 bool OnCallBack(int nParam1, int nParam2)
 {
  printf("OnCallBack -> nParam1:%d, nParam2:%d\r\n", nParam1, nParam2);

  return true;
 }

 CDelegate<CDelegateTester, bool, int, int> m_OnCallBack;

public:

 CDelegateTester()
 : m_OnCallBack(this, OnCallBack)
 {
 }

 void Execute()
 {
  CDelegateSource src;
  src.SetCallBack(&m_OnCallBack);
  src.DoSomething();
 }
};

void main()
{
 CDelegateTester Tester;
 Tester.Execute();

 getchar();
}

posted @ 2010-07-25 15:57 张志松 阅读(834) | 评论 (0)编辑 收藏


假设我们要把IE的首页改http://www.dodonew.com/

1、最简单的办法。

直接修改HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main下面Start Page的值为http://www.dodonew.com/

2、比较隐蔽的办法,也是流氓软件经常使用的办法之一。

修改HKEY_CLASSES_ROOT\CLSID\{871C5380-42A0-1069-A2EA-08002B30309D}\shell\OpenHomePage\Command
的默认值为 "C:\Program Files\Internet Explorer\iexplore.exe" http://www.dodonew.com/

3、修改桌面快捷方式。

隐藏桌面(快速启动栏)默认的IE快捷,创建自己的IE快捷方式。

把HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel(或者ClassicStartMenu,取决于是不是选择经典的开始菜单)下面{871C5380-42A0-1069-A2EA-08002B30309D}的值改为1,然后刷新桌面即可隐藏默认的IE快捷方式。

创建桌面快捷方式有两种办法:

第一种办法就是直接创建快捷方式文件,并把目标指向"C:\Program Files\Internet Explorer\iexplore.exe" http://www.dodonew.com/

第二种办法是创建类似我的电脑的快捷方式。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}]
"InfoTip"="哈哈!我的IE快捷方式!"
"LocalizedString"="Internet Explorer"

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}\DefaultIcon]
@="C:\\Program Files\\Internet Explorer\\iexplore.exe"

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}\Shell\Open]
@="打开主页(&H)"

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}\Shell\Open\Command]
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\" http://www.dodonew.com/"

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}\Shell\Prop]
@="属性(&R)"

[HKEY_CLASSES_ROOT\CLSID\{16AEFBE8-563F-0657-819C-A93578895D87}\Shell\Prop\Command]
@="Rundll32.exe Shell32.dll,Control_RunDLL Inetcpl.cpl"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{16AEFBE8-563F-0657-819C-A93578895D87}]
@="Internet Exploer"

posted @ 2010-07-18 16:32 张志松 阅读(605) | 评论 (0)编辑 收藏

有时候我们的需要MFC对话框程序一开始就隐藏窗口,在后台运行。

1、修改对话框资源的Visible属性的值为False.

2、修改CXXXApp::InitInstance()中的代码。

CXXXDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{

}
else if (nResponse == IDCANCEL)
{

}

return FALSE;

把上面的代码改为:

CXXXDlg* pDlg = new CXXXDlg;
pDlg->Create(CXXXDlg::IDD);
pDlg->ShowWindow(SW_HIDE);

m_pMainWnd = pDlg;

return TRUE;


3、为了不让程序运行时抢焦点,CXXXDlg::OnInitDialog() 应该返回FALSE;


4、在 CXXXDlg::OnNcDestroy() 中加入 delete this;

posted @ 2010-07-10 18:43 张志松 阅读(599) | 评论 (0)编辑 收藏
仅列出标题
共7页: 1 2 3 4 5 6 7 

<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

转载

搜索

  •  

最新评论

阅读排行榜

评论排行榜