古月西城
C++博客 | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

2009年3月3日

安全读取进程内存数据

        最近写一个内存遍历工具,需要读取进程内存地址,发现如果传入的地址是无效的,就发生内存违例错误,翻了一下书、google了一下,终于搞定了。虽然没技术含量,记录下来,以便以后查看。

BOOL CMyListCtrl::ShowData(PVOID lpAdd)
{
    CString strTmp;
    
//lpAdd=(PVOID)0x12345;
    WCHAR  szWideProgID[1024];

    strTmp.Format(TEXT(
"0x%x"),(DWORD)lpAdd);
    
this->InsertItem(0, strTmp);//地址    
    
    __try
{ //开EHs-c-选项
        strTmp.Format(TEXT("%x"),*(const long *)lpAdd);
        
this->SetItemText(0,1,strTmp);    //整数型

        strTmp.Format(TEXT(
"%e"),*(const float *)lpAdd);
        
this->SetItemText(0,2,strTmp);    //单精度浮点数

        strTmp.Format(TEXT(
"%e"),*(const double *)lpAdd);
        
this->SetItemText(0,3,strTmp);    //双精度浮点数

        
long  lLen = MultiByteToWideChar(CP_ACP,0,(LPCSTR)lpAdd,strlen((LPCSTR)lpAdd),
            szWideProgID,
sizeof(szWideProgID));  
        szWideProgID[lLen] 
= '\0';

        
//strTmp.Format(TEXT("%s"),);
        this->SetItemText(0,4,szWideProgID);    //字符串
        
        strTmp.Format(TEXT(
"%s"),(const WCHAR *)lpAdd);
        
this->SetItemText(0,5,strTmp);    //U_字符串
    }

    __except( EXCEPTION_EXECUTE_HANDLER )
    
{
        
this->SetItemText(0,1,TEXT("??"));    //整数型
        this->SetItemText(0,2,TEXT("??"));    //单精度浮点数
        this->SetItemText(0,3,TEXT("??"));    //双精度浮点数
        this->SetItemText(0,4,TEXT("??"));    //字符串
        this->SetItemText(0,5,TEXT("??"));    //U_字符串
    }


/**//*    */
    
return 0;
}
posted @ 2009-03-03 23:48 古月西城 阅读(1277) | 评论 (0) | 编辑 收藏
 

2009年2月24日

Access 连接字符串代码

  最近用ado搞一个access的数据库操作软件,在网上搜了一下。英文好的还是参考一下msdn关于 Provider的说明。

标准安全策略
   
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\mydatabase.mdb;Uid=Admin;Pwd=;
 
工作组
   
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\mydatabase.mdb;SystemDB=C:\\mydatabase.mdw;
 
独占模式
   
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\mydatabase.mdb;Exclusive=1;Uid=admin;Pwd=;
 
管理员模式
如果您需要在程序中使用 CREATE USER, CREATE GROUP, ADD USER, GRANT, REVOKE 和DEFAULTS等命令,您就需要使用此连接字符串。  
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\mydatabase.mdb;Uid=Admin;Pwd=;ExtendedAnsiSQL=1;
 
OLE DB, OleDbConnection (.NET)
 
标准安全策略
   
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;User Id=admin;Password=;
 
使用数据库密码
如果您的Access数据库设置了密码,您就需要参照如下连接字符串将密码写入后才能够正常使用。  
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
 
工作组(系统数据库)
   
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;
 
工作组(系统数据库)并且制定用户名和密码
   
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\mydatabase.mdb;Jet OLEDB:System Database=system.mdw;User ID=myUsername;Password=myPassword;  
posted @ 2009-02-24 07:30 古月西城 阅读(3353) | 评论 (0) | 编辑 收藏
 
仅列出标题  
随笔:2 文章:5 评论:0 引用:0
<2025年5月>
日一二三四五六
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿(2)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔档案

  • 2009年3月 (1)
  • 2009年2月 (1)

文章分类

  • MFC(1) (rss)

文章档案

  • 2009年3月 (4)
  • 2009年2月 (1)

开源库

  • ADO
  • CHash
  • Hash算法的MFC库
  • 一个牛人

搜索

  •  

最新评论

阅读排行榜

  • 1. Access 连接字符串代码(3353)
  • 2. 安全读取进程内存数据(1277)

评论排行榜

  • 1. Access 连接字符串代码(0)
  • 2. 安全读取进程内存数据(0)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 古月西城