海鸥航迹

学习之笔记,好文之收集。

2009年12月24日 #

将C++ DLL Wrap后供.NET 调用

What you would do is providing call stubs from your DLL that then are accessible via PInvoke, e.g.

//wrapper.cpp
#include "manufacturer.h"
#pragma comment(lib,"manufacturer.lib")

extern "C" __declspec(dllexport) int WrapperCallManufacturerFunc1(int a, int b)
{
    return ManufacturerFunc1(a,b);
}

extern "C" __declspec(dllexport) char* WrapperCallManufacturerFunc2(char* pString)
{
    return ManufacturerFunc2(pString);
}

extern "C" __declspec(dllexport) double WrapperCallManufacturerFunc3(double d)
{
    return ManufacturerFunc3(d);
}

extern "C" __declspec(dllexport) void WrapperCallManufacturerFunc4()
{
    ManufacturerFunc4();
}

That's basically it. The 'extern "C"' statement is used to tell the compiler to not apply C++ name mangling, i.e. the functions names are not decorated and exported 'as is'. The return types resemble the return types of the functions in the .lib you want to call, except for 'void' functions where your function is 'void' also, yet the 'return' statement is not used. Then you can access the wrapper functions like

Declare Auto Function ManufacturerFunc1  Lib "wrapper.dll" Alias "WrapperCallManufacturerFunc1 " ( _
    ByVal a As Integer, _
    ByVal b As Integer) _
    As Integer

or

Imports System.Runtime.InteropServices
Public Class Win32
    Declare Auto Function WrapperCallManufacturerFunc1 Lib "wrapper.dll" _
       (ByVal a As Integer, _
        ByVal b As Integer) As Integer
End Class

See also http://msdn2.microsoft.com/en-us/library/172wfck9(vs.80).aspx ("Walkthrough: Calling Windows APIs") and http://msdn2.microsoft.com/en-us/library/w4byd5y4(VS.80).aspx ("Creating Prototypes in Managed Code")

posted @ 2009-12-24 20:43 海天一鸥 阅读(15) | 评论 (0)编辑

2009年11月16日 #

水晶报表的一些技巧[转]

     摘要: 自定义水晶报表的外观 1、外观: 设置 Crystal Report Viewer 的属性: DisplayGroupTree 布尔值。获取或设置树视图是可见还是隐藏。 DisplayPage ...  阅读全文

posted @ 2009-11-16 09:41 海天一鸥 阅读(94) | 评论 (0)编辑

2009年8月7日 #

Trojan:Win32/Iyeclore.A木马

今天扫描机器,发现一个木马:

file:C:\Program Files\nuneos\mumnos\socesv.dll
file:C:\Program Files\nuneos\mumnos\sosvus.dll
file:C:\Program Files\nuneos\micesv.exe

 

微软的MSE扫描报告:

Category: Trojan

Description: This program is dangerous and executes commands from an attacker.

Recommendation: Remove this software immediately.

Microsoft Security Essentials detected programs that may compromise your privacy or damage your computer. You can still access the files that these programs use without removing them (not recommended). To access these files, select the 'Allow' action and click "Apply actions". If this option is not available, log on as administrator or ask the local administrator for help.

Items:
file:C:\Program Files\nuneos\micesv.exe

Get more information about this item online.

 

扫描完成之后,手工删除文件。

运行 sc delete scpd 删除后台服务。

posted @ 2009-08-07 08:33 海天一鸥 阅读(891) | 评论 (0)编辑

2009年6月26日 #

串行通讯简单认识

串行通讯简单认识

串行通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。

一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。

一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。

根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。

    MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。

单工、半双工和全双工的定义

如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。

如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。

如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。

电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。

-------->

<-------->

-------->

A---------B

A----------B

A---------B

   

<--------

单工

半双工

全双工

串口通讯—全双工和半双工方式

在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。

1、全双工方式(full duplex)

当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图1 所示。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要2 根数据线传送数据信号。(可能还需要控制线和状态线,以及地线)。

clip_image001

图1

比如,计算机主机用串行接口连接显示终端,而显示终端带有键盘。这样,一方面键盘上输入的字符送到主机内存;另一方面,主机内存的信息可以送到屏幕显示。通常,往键盘上打入1个字符以后,先不显示,计算机主机收到字符后,立即回送到终端,然后终端再把这个字符显示出来。这样,前一个字符的回送过程和后一个字符的输入过程是同时进行的,即工作于全双工方式。

2、半双工方式(half duplex)

若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图2所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。

clip_image002

图2

当计算机主机用串行接口连接显示终端时,在半双工方式中,输入过程和输出过程使用同一通路。有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况。

目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚。在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向。

posted @ 2009-06-26 14:42 海天一鸥 阅读(191) | 评论 (0)编辑

2009年6月21日 #

IE自动弹出窗口(JS/TrojanDownloader.Iframe.NDR 木马查杀)故障解决

故障原因:

从网上下载了一个FAR HTML软件,运行注册机染毒(声明:运行之前已经对注册机扫描,Nod32和木马克星未报毒);

症状:

打开IE后,每间隔一段时间,随机打开一个网页:

http://www.dabao1.cn/adv.htm

http://008.wangwang1.cn/bbs/fx.htm

等各类随机网页,打开的网站本身也是挂马的网站,Nod32会报警并自动关闭进程。

 

木马修改系统:

增加了系统驱动:

Protector        c:\windows\system32\drivers\protector.sys   
ProtectorA        c:\windows\system32\drivers\protectora.sys

篡改系统服务:

Messager C:\WINDOWS\SYSTEM32\msgsvc.dll ,替换了操作系统原有的文件,换成了木马文件,并且修改服务为自动启动,其他诸如Remote Register等各类服务,都被修改为自动启动;注意,这个木马DLL和原始的DLL居然MD5相同,但用Hex32打开,对比原始文件存在不同,强的很。

 

解决过程:

1、使用autorun.exe删除Protector  和 ProtectorA 服务。如果对应的.sys文件删除不了,使用WinPE启动系统,手工删除即可;检查启动组,服务等各种自启动项是否有异常,如果有,直接删除异常条目,并记录目标文件,以便稍后用WInPE删除。例如,木马可能生成一个自启动项“QQ升级服务”,“MSN升级服务”,并链接到C:\Windows\xxx.exe的一个文件,或者其他什么文件。

2、进入WinPE,删除C:\WINDOWS\SYSTEM32\msgsvc.dll ,删除各种Temp文件夹的文件及子文件夹,包括所有的IE缓存及设置
C:\Documents and Settings\用户名\Local Settings\Temp

C:\Documents and Settings\用户名\IETXXXCache\ (XXX可能是你安装了的组件的名称,或者其他什么,都可以删除,重新启动系统后会重建,但你的个人设置数据会丢失)

3、重启系统进入安全模式,运行sfc/scannow,并准备好原始的WInxp xp2安装盘,恢复被篡改的服务。

4、重新启动系统,进入正常模式,下载http://download.microsoft.com/download/0/9/F/09F12296-8FE7-41AD-AED7-F613AD30C9F3/MicrosoftFixit50198.msi

这个是微软发布的IE Fix Tool,会修复IE的注册表以及IE的各种注册文件,检查IE的DLL文件版本,修复主页等等;

5、把那些木马网站加入host屏蔽中;

6、重新启动系统;木马清理完成;

 

其他问题:

虽然木马删除了,但修复后的IE可能一些功能不好用了,例如网上银行安全验证控件不好用了,这时你只需要重新安装网银的ActiveX控件即可。

posted @ 2009-06-21 12:08 海天一鸥 阅读(656) | 评论 (0)编辑

2009年6月2日 #

解决 Window.Open 页面缓存问题

     摘要: 1、在Asp页面首部加入 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache" Response.AddHeader "Pragma", "No-Cache" 2、在HtML代码中加入 <HEAD>...  阅读全文

posted @ 2009-06-02 15:01 海天一鸥 阅读(324) | 评论 (0)编辑

2009年5月25日 #

耳机选购指南

     摘要: 随身听是一种便携的随身听音设备,它最大的优势就是方便人们携带,可随时随地的享受音乐。随着技术进步生活水平的提高,人们更向往高品质的生活,随身听也不仅仅是满足人们的听的需要了,而是要在随身的基础上更好的享受音乐,最好的办法就是给随身听配一副好的而又搭配   随身听是一种便携音响设备,最大的优势就是方便人们携带,可随时随地的享受音乐。要更好地享受音乐,最好的办法就是给随身听配一副好的而又搭配得当的耳...  阅读全文

posted @ 2009-05-25 11:17 海天一鸥 阅读(250) | 评论 (0)编辑

2009年5月10日 #

中行网银弹出窗口显示空白的故障解决

     摘要: 中国银行最近的服务升级,越来越贴心了。最近在安全性,服务功能上都有很多提升,值得使用。 优点: 1、动态口令Token是免费的,开通网上银行就赠送一个设备 2、网银的任何交易短信提醒,免费 3、行内转账便宜;跨行转账近期优惠,目前1万以下5元,1~10万10元,貌似便宜了,呵呵; 4、外汇,基金买卖在线交易; 5、可存外汇定期或者活期 但其网银网站与IE7兼容性不太好,即使在兼容模式下,也冒出一...  阅读全文

posted @ 2009-05-10 16:04 海天一鸥 阅读(561) | 评论 (0)编辑

2009年3月31日 #

CruiseControl.NET svnRevsionLabel故障解决

     摘要: 环境:CruiseControl.NET 1.4SVN Revision Labeller 1.0.3异常信息:Error Message:System.Xml.XmlException: 行 7 上的开始标记“msg”与结束标记“logentry”不匹配。 行 8,位置 3。 在 System.Xml.XmlTextReaderImpl.Throw...  阅读全文

posted @ 2009-03-31 13:08 海天一鸥 阅读(644) | 评论 (1)编辑

2009年3月24日 #

删除jwgkvsq.vmx ,Autorun.vinf蠕虫病毒

     摘要: 移动硬盘根目录不知何时出现了一个总也删除不掉的Autorun.vinf文件,用HexEditor打开一看,二进制的,但从末尾的ASCII码,能够看到 jwgkvsq.vmx 字样。上网搜索一看,才知道这是个比较新的病毒。 实际上,如果此病毒还没有感染系统的话,可以进入安全模式,进行如下操作: 1、关闭系统欢迎; 2、关闭回收站功能; 3、将Administrators组添加到RECYCLER,S...  阅读全文

posted @ 2009-03-24 23:19 海天一鸥 阅读(7423) | 评论 (0)编辑