自己写
类库
micro ISV
展开
-
w3l.exe逆向之自写程序篇
既然把反汇编代码都读了一遍了,就可以自己来写一个同样功能的程序了。这里用C写一个,在Win2000下的VC7.1和GCC3.4下都通过的,功能也完成的(可以连上PvPGN的),但是DOS下的TC、BC是不行的,因为这要调用到Windows的API。程序很简单,从反汇编代码里都可以看出这一点,呵呵。代码如下:#include #include #include int WinMain(原创 2004-10-29 14:42:00 · 1119 阅读 · 0 评论 -
多系统共享BCB6
同一个硬盘上装了多系统,原来一直用Win2000来写程序,在Win2000下装了Borland C++ Builder 6,还有一些其它的编程工具,每次写完一个完整点的程序,在Win2000下运行正常后,还要跑到WinXP下试试,于是想要有时候能在WinXP下也运行BCB6。不想再装一次BCB了,主要是因为光驱坏了,硬盘上也没有BCB6的光盘镜像,所以就试试能否共享原来安装在Win原创 2005-02-26 15:01:00 · 1237 阅读 · 0 评论 -
多系统共享Delphi
完成多系统共享BCB6之后,我开始尝试多系统共享Delphi 7 Studio Enterprise(简称D7)和Delphi 2005 Studio(简称D7)。 像多系统共享BCB那样添加Path和注册表项后,点击Delphi的运行文件,在D7时,会直接弹出对话框,说不能找到有效的许可信息,直接要求退出。D9则是在显示Splash窗口时,弹出几个MessageBo原创 2005-02-28 20:00:00 · 762 阅读 · 0 评论 -
使用OutputDebugString调试窗口程序
学编程是从DOS下开始的,用了一定时间的TC2.0,使得养成了用printf输出变量值进行调试的坏习惯。到了写窗口程序时,就遇到了些麻烦。 窗口程序没有方便的进行控制台输出的方法(其实是我不知道),于是,用了几年的用MessageBox进行输出的调试手段,太麻烦了,因为MessageBox会打断程序流程,还要人为手动让它继续运行,这是最让人恼火的。 后来原创 2005-03-06 13:31:00 · 1633 阅读 · 0 评论 -
关于OutputDebugString的模拟
从http://www.unixwiz.net/techtips/outputdebugstring.html这篇文章中可以知道,通过简单的几步设置,便可模拟OutputDebugString,可以用下面的代码描述:struct dbwin_buffer { DWORD dwProcessId; char data[4096-sizeof(DWORD)];};原创 2005-03-09 11:14:00 · 923 阅读 · 0 评论 -
关于shellapi.h/shlobj.h头文件和宏定义冲突
昨天在给LLYF ProcessHelper添加TrayIcon功能,代码是从LLYF Spy那部分完全Paste过来的,结果编译的时候说NIF_INFO没有定义,还有szInfo、uTimeout这些凡是说要IE Version5.0以上支持部分都说没有定义,可是我在LLYF Spy里好好的呀,还以为是XP的问题,马上退到2000下,结果一样。于是我打开ShellApi.h看,在那个函数和结果定原创 2005-03-09 11:15:00 · 1612 阅读 · 0 评论 -
日历软件的界面实现
今天看了一下两个日历软件的界面实现,一个是老外的ADC,还有个是国产的鱼鱼桌面日历秀,它们都有一个特点是,能把日历显示在桌面最底层,就算你用鼠标在上面点,划,都是相当于直接点在桌面上,但是视觉效果上,它们又是确实存在的。 大概看了一下,ADC的实现比较简单,就是把Wallpaper截下来,然后把自己的日历内容,Todo list都画到上面去,生成一个新的bmp文件,原创 2006-07-12 22:30:00 · 1086 阅读 · 0 评论 -
停在最下面
那天说到日历软件的界面实现,鱼鱼的桌面日历能把窗口一直停在最下面,无论怎么拖动,窗口还是停在其它进程的窗口下面。上google搜了一下,发现其实要实现这个很简单,只要截获WM_WINDOWPOSCHANGING,把LParam参数指向的结构体中把hwndInsertAfter的值改成HWND_BOTTOM就可以了。现在几乎所有的日历软件需要的界面技术都可以实现了,相比之下,我个人更原创 2006-07-17 22:16:00 · 664 阅读 · 0 评论 -
BDS2006试用
昨天,哦不,应该是今天凌晨,熬夜装好的BDS2006,晚上回来就试用一下。把那个写了一半的数据分析程序从BCB6.0移植过来,很顺利,因为我都没有使用其它任何第三方的控件。传说中改进了内存管理器,但这一点我是没什么切身的感触。有时候我在想,我为什么要升级,从BCB5.0升到6.0的时候,只是看到IDE中编辑器的代码提示功能相对好用了稳定了些,其它的都还没来得及比较,因为对于我来说,原创 2006-07-19 00:08:00 · 930 阅读 · 0 评论 -
Happy,BDS2006 Installed!
历尽千辛万苦,在eMule上下了一个多星期,当然不是每天24小时开着,总算把前面3个CD的镜像拖下来了,开始还以为不能用,因为看了网上n多的帖子文章,说前2个CD的要repack的才行,果然在Alcohol120%里加载那几个cue文件时,都说不能访问文件,用UE打开一看,里面的文件名似乎有点问题,改成对应的bin文件的名字,再来加载,就可以了,如果只是要装一下C++Builder原创 2006-07-18 01:05:00 · 724 阅读 · 0 评论 -
这三款模拟按键软件
按键精灵,模拟精灵,按键游侠,都提供了不同程度的对Windows平台下鼠标键盘的输入的程序模拟,可以实现无人值守的自动化某些机械重复的操作。其中模拟精灵的功能整体上远远强于另外两款,它似乎是真心致力于成为一个通用的自动化工具,而不像按键精灵,打着合法的旗帜,提供了一系列的功能方便用户写出挂机脚本,大规模地流行于网游玩家之间,但是反复地强调自己的合法性,却死守着不愿意增加某些特性,并原创 2006-08-12 23:06:00 · 6189 阅读 · 3 评论 -
编程读取其它进程中StatusBar的内容
void __fastcall TMainForm::GetStatusBarContent(){ //TODO: Add your source code here int nItemCount; int i; char chBuffer[256]; DWORD dwProcessID; HANDLE hProcess; void * Point原创 2005-02-03 13:31:00 · 952 阅读 · 0 评论 -
编程读取其它进程中ToolBar的内容
void __fastcall TMainForm::GetToolBarContent(){ //TODO: Add your source code here int nItemCount; int i; char chBuffer[256]; DWORD dwProcessID; HANDLE hProcess; void * Pointer原创 2005-02-03 13:29:00 · 1773 阅读 · 4 评论 -
w3l.exe逆向之脱壳篇
TFT在连PvPGN架的战网时,要用特定的Loader来载入启动,那Loader也就2个文件,一个是w3l.exe,另一个是w3lh.dll,每次都是通过运行w3l.exe来启动正常的魔兽。由于觉得好奇,所以这次把w3l.exe肢解了看看。基本需求:知道80x86汇编,会一点C,了解Windows程序设计基本原理,最好还有MSDN随时备查。先用PEiD看了看w3l.exe(这是用于1.14-1.1原创 2004-10-29 14:36:00 · 3019 阅读 · 0 评论 -
Fterm附带IP数据库的修改
Fterm所附带的IP数据都存放在一个叫QQWry.dat的文件里面,因为学校里的校园网比较发达,几乎每个想上校园网的人都得拥有一个独立的IP,所以就有为学校的IP做记录的想法。为了修改Fterm里的IP数据库,先找到一个叫“QQIP数据编辑器”的程序,好像QQ2004精灵坊显IP版15.0永久珍藏版里就附带了这个程序,文件名是QQIP.exe,用这个程序,可以打开QQWry.dat文件,并将其转原创 2004-10-29 14:42:00 · 2120 阅读 · 0 评论 -
w3l.exe逆向之反汇编代码分析篇
得到了反汇编代码,就可以看到程序是如何运作的。用IDA Pro 4.5装入已经脱了壳的w3l.exe,经过IDA的一番咀嚼,会得到排版比较好看的代码:loc_401000: ; CODE XREF: foo.:0040109Aj ; foo.:004010ABj原创 2004-10-29 14:41:00 · 2259 阅读 · 0 评论 -
让人郁闷的完成端口...
开始用完成端口写Server,郁闷,照着书上的例子来,还是有错,总是到bind,WSAAccept后的第一个WSARecv的时候,说10045错误。 去网上查资料,几乎所有的中文的,都只是对《Windows网络编程》一书的翻译。SMTH上也有个人,一样的问题,不知道是怎么解决的。 不过庆幸的是,居然下载到了《Network Programming for原创 2004-12-23 01:58:00 · 817 阅读 · 0 评论 -
抓包
为了写WinSock程序,找了几个抓包的程序,CommView 4.1和IRIS 4.07,发现它们两个界面都差不多,好像IRIS的功能稍微多一点点。但是不知道为什么,在设置Filter的时候,IRIS总是有问题,IP栏里不能输入3位数的十进制数,也不像是能输入16进制值的。在Address Book里,只能输入最前几一个IP值,就是aaa.bbb.ccc.ddd,无论如何输入,最原创 2004-12-25 18:10:00 · 958 阅读 · 0 评论 -
关于完成端口第一次WSARecv投递失败
最后的最后,我终于发现了关于完成端口第一次WSARecv投递失败的原因!MSDN中关于WSARecv的原型如下:int WSARecv( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesRecvd, LPDWORD lpFlags, LPWSAOVERLAPPE原创 2004-12-27 19:57:00 · 2178 阅读 · 7 评论 -
编程读取其它进程中ListView的内容
void __fastcall TMainForm::GetListViewContent(){ //TODO: Add your source code here //* int nColumnCount; int nItemCount; int i,j; char chBuffer[1024]; DWORD dwProcessID; HA原创 2005-02-03 13:23:00 · 888 阅读 · 0 评论 -
编程读取其它进程中TabControl的内容
void __fastcall TMainForm::GetTabControlContent(){ //TODO: Add your source code here int nItemCount; int i; char chBuffer[256]; DWORD dwProcessID; HANDLE hProcess; void * Poin原创 2005-02-03 13:27:00 · 872 阅读 · 0 评论 -
编程读取其它进程中TreeView的内容
void __fastcall TMainForm::GetTreeViewContent(){ //TODO: Add your source code here int nItemCount; int i; char chBuffer[256]; DWORD dwProcessID; HANDLE hProcess; void * Pointe原创 2005-02-03 13:25:00 · 946 阅读 · 0 评论 -
TSharedMem类
/// SharedMem.hclass TSharedMem{private: bool FCreated; BYTE *FFileView; HANDLE FHandle;public: TSharedMem(const TCHAR* Name, int Size); ~TSharedMem(); bool IsUnique(); BYTE *Buffer();};原创 2005-02-04 15:21:00 · 881 阅读 · 0 评论 -
我们老大的腰可真细啊!
大概是因为经常参加体育锻炼,又注意保养的结果吧! 每次看《Contribute to Eclipse》,就会感叹一次,Eclipse的插件架构做得太牛逼了!话说Emacs的插件机制也挺好的,不过有点感觉是,那是适合二十年前的发明,虽然在现在看来也是颇有可圈可点之处,但总感觉略显朴素了点,朴素而耐用。而Eclipse给我的感觉是,老子就是牛,逗你玩呢。就是一群特牛原创 2006-08-24 00:14:00 · 986 阅读 · 1 评论