|
[求助]IE页面,点右键属性,弹出的那个窗口,如何进行拦截?
这个也不是很难吧,只是有些繁琐。先写个BHO挂到IE上,然后在DISPID_DOCUMENTCOMPLETE中注册DIID_HTMLDocumentEvents2,就能处理接口HTMLDocumentEvents2::Invoke,再处理事件DISPID_MOUSEUP,在里面用IHTMLEventObj和IHTMLElement接口就可以取得或修改右键点选的网页元素信息了。 |
|
|
|
[求助]微软为什么要禁止传播以前公开发布的WDK 6000.18002呢?
在网上搜索了下,很容易就找到了下载连接,微软官方的下载连接仍然还在,我刚试了,还可以下,而且现在连接好像稳定多了。 https://connect.microsoft.com/site148/Downloads/DownloadDetails.aspx?DownloadID=21028 |
|
[求助]微软为什么要禁止传播以前公开发布的WDK 6000.18002呢?
太巧了,我硬盘里就有这个版本,跟你要找的一模一样。那是N久前下的了,不像现在可以直接下载,那时还要注册(免费)什么的,反正是一个繁琐的流程之后才能开始下载。那个下载连接有问题,下了好多天,经常下着下着就断了,还不能断点继传,最后是挂在公司服务器上,反复下了好久,才下载成功。估计下到这个版本WDK的人非常少。 |
|
[分享]全新原创Anti-rootkit软件SysReveal,欢迎试用
刚用你最新版本的试了下,已经正常了。 |
|
|
|
|
|
[分享]全新原创Anti-rootkit软件SysReveal,欢迎试用
内存反汇编功能,很多代码反出来都是??? |
|
|
|
[求助]请问WIN7和VISTA编程要注意什么?
使用API函数一般不会有什么问题。XP下编写的程序在VISTA系统下出错,多数情况都是自己的代码不够严谨引起的。除了自己代码本身的问题,我目前遇到编写的XP程序在VISTA下出现问题主要有以下三种情况: 1、如果程序使用了HeapAlloc来分配内存,不要使用GetProcessHeap取默认堆,最好自己用HeapCreate创建新的堆。默认堆大小一般的说法是4M,不知道是不是被进程所调用的那些系统DLL用掉了大部分,分配内存过多时很容易失败。 2、程序在XP下枚举并修改网页中的元素不会有什么问题,但在VISTA下修改网页元素有时就会导致非法操作,这应该是安全性的问题。 3、VISTA下,服务程序不能直接与桌面交互,具体的原因网上你可以搜索得到。如果需要写一个可与桌面交互的服务程序,目前只能是写两个程序来解决,一个服务的服务端,一个服务的客户端。 暂时只想起这么多,应该还有几点注意事项的。 |
|
[求助]非模态对话框显示顺序问题?
你说的这个问题有些复杂,我估计你的意思应该是希望从对话框中创建的非模态窗口能成为该对话框的父窗口吧?你可以在创建非模态窗口时,不指定父窗口,但这样一来,任务栏上会同时显示出两个窗口图标,这可能不是你想要的效果。或者你可以试试SetParent函数,改变其中一个的父窗口,如果行不通的话,就得调整你的程序代码结构才能解决了。如果你还是个编程初学者的话,这种问题一时之间恐怕很难解决,还不如先将就一下就那么用着吧,呵呵。 |
|
|
|
[原创]IAT HOOK 代码注入非DLL
进入 System 空间应该也可以的,有些挂机锁就是用这个原理让勾子函数挂到WinLogon.exe上去了,不过好像只能是只读操作,有写入操作就会蓝屏。 |
|
[讨论]ASM汇编加载驱动强制关闭进程
IOCTL_ABCD equ CTL_CODE(FILE_DEVICE_EVENT, 99h, METHOD_BUFFERED, FILE_ANY_ACCESS) invoke DeviceIoControl,hFile,IOCTL_ABCD,esi,sizeof DWORD,NULL,NULL,NULL,NULL 我一般都是这样写的,没试过你那种写法。 |
|
汇编怎么调用COM,有没有这方面的资料可以提供一点。
以新建快捷方式为例,贴段代码: comethod1Proto typedef proto :DWORD comethod2Proto typedef proto :DWORD,:DWORD comethod3Proto typedef proto :DWORD,:DWORD,:DWORD comethod4Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD comethod5Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD comethod6Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD comethod7Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD comethod8Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD comethod9Proto typedef proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD comethod1 typedef ptr comethod1Proto comethod2 typedef ptr comethod2Proto comethod3 typedef ptr comethod3Proto comethod4 typedef ptr comethod4Proto comethod5 typedef ptr comethod5Proto comethod6 typedef ptr comethod6Proto comethod7 typedef ptr comethod7Proto comethod8 typedef ptr comethod8Proto comethod9 typedef ptr comethod9Proto _vtIShellLink MACRO CastName:REQ &CastName&_QueryInterface comethod3 ? &CastName&_AddRef comethod1 ? &CastName&_Release comethod1 ? &CastName&_GetPath comethod5 ? &CastName&_GetIDList comethod2 ? &CastName&_SetIDList comethod2 ? &CastName&_GetDescription comethod3 ? &CastName&_SetDescription comethod2 ? &CastName&_GetWorkingDirectory comethod3 ? &CastName&_SetWorkingDirectory comethod2 ? &CastName&_GetArguments comethod3 ? &CastName&_SetArguments comethod2 ? &CastName&_GetHotkey comethod2 ? &CastName&_SetHotkey comethod2 ? &CastName&_GetShowCmd comethod2 ? &CastName&_SetShowCmd comethod2 ? &CastName&_GetIconLocation comethod4 ? &CastName&_SetIconLocation comethod3 ? &CastName&_SetRelativePath comethod3 ? &CastName&_Resolve comethod3 ? &CastName&_SetPath comethod2 ? ENDM IShellLink STRUCT _vtIShellLink IShellLink IShellLink ENDS _vtIPersistFile MACRO CastName:REQ &CastName&_QueryInterface comethod3 ? &CastName&_AddRef comethod1 ? &CastName&_Release comethod1 ? &CastName&_GetClassID comethod2 ? &CastName&_IsDirty comethod1 ? &CastName&_Load comethod3 ? &CastName&_Save comethod3 ? &CastName&_SaveCompleted comethod2 ? &CastName&_GetCurFile comethod2 ? ENDM IPersistFile STRUCT _vtIPersistFile IPersistFile IPersistFile ENDS coinvoke MACRO pInterface:REQ, Interface:REQ, Function:REQ, args:VARARG LOCAL istatement, arg FOR arg, <args> IFIDNI <&arg>, <edx> .ERR <edx is not allowed as a coinvoke parameter> ENDIF ENDM IFIDNI <&pInterface>, <edx> .ERR <edx is not allowed as a coinvoke parameter> ENDIF istatement CATSTR <invoke (Interface PTR[edx]).&Interface>,<_>,<&Function, pInterface> IFNB <args> istatement CATSTR istatement, <, >, <&args> ENDIF mov edx, pInterface mov edx, [edx] istatement ENDM .data IID_IShellLinkA GUID {0000214EEH,00000H,00000H,{0C0H,000H,000H,000H,000H,000H,000H,046H}} CLSID_ShellLink GUID {000021401H,00000H,00000H,{0C0H,000H,000H,000H,000H,000H,000H,046H}} IID_IPersistFile GUID {00000010BH,00000H,00000H,{0C0H,000H,000H,000H,000H,000H,000H,046H}} .code 上面是宏定义等数据,下面是程序代码: CreateShortcut proc lpszFile:DWORD,lpszLink:DWORD LOCAL pShortcut:DWORD,pIPersist:DWORD LOCAL szLinkBuff[MAX_PATH+MAX_PATH]:BYTE mov pShortcut,0 invoke CoCreateInstance,addr CLSID_ShellLink,0,CLSCTX_INPROC_SERVER,addr IID_IShellLinkA,addr pShortcut .if eax == S_OK coinvoke pShortcut,IShellLink,SetPath,lpszFile coinvoke pShortcut,IShellLink,SetIconLocation,lpszFile,0 mov pIPersist,0 coinvoke pShortcut,IShellLink,QueryInterface,addr IID_IPersistFile,addr pIPersist .if eax == S_OK invoke MultiByteToWideChar,CP_ACP,0,lpszLink,-1,addr szLinkBuff,sizeof szLinkBuff coinvoke pIPersist,IPersistFile,Save,addr szLinkBuff,TRUE coinvoke pIPersist,IPersistFile,Release .endif coinvoke pShortcut,IShellLink,Release .endif ret CreateShortcut endp 调用: invoke CreateShortcut,STEXT("C:\WINDOWS\NOTEPAD.EXE"),STEXT("C:\A.LNK") IShellLink和IPersistFile是自己查SDK,然后填写的,汇编没有现成的,用到哪一个接口就去查到相应的,然后填写好,再进行调用。具体每个不同接口的使用说明,就需要查阅MSDN了。 说的比较浅显,也没用什么注释,希望你能看得懂。 |
|
[讨论]网络编程,关于WSASend,send一次没有将数据发完的问题
都有可能,还有可能是分成N次接收。比如客户端第一次接收到的是999,第二次是25,这都有可能的,这是由当前连接的网络状况决定的。你可以到GOOGLE搜索一下“MTU是什么”以决定最佳数据包大小。或者你可以使用UDP来发送就能一次接收,但这种发送方式并不可靠。如果要用在互联网,以你的情况只能是使用TCP。 只能使用第一种方法。如果一条数据包的大小有10240字节呢,再碰上一方网络慢的话,就算你发一万次也未必会成功的。 解决方法:网络程序数据包内容一般要经过编码的,不会直接发送原始内容(不便于处理),编码后你可以分别在头尾置上一些特定的不会在编码中出现的字符作为起始和结束标记。比如以某些网络游戏为例,以#为数据包开始标记,以!为结束标记,像以下内容就是两个数据包: #ALKDJSLKD827982398!#28928328384984! 接收到一个数据包后,你可以从中判断,将已接收完整的数据包按顺序处理完毕,然后把剩下的半个数据包,与下一次接收的数据包拼接,然后再处理,如此循环。所以不要想偷懒,看起来似乎是有点烦琐,但这事是一劳永逸的,你只要写好代码了,以后再有类似的程序,就不用重复劳做了。 我讲的比较通俗,希望你能够理解。 |
|
|
|
[原创]ASProtect 2.3 SKE build 04.23.beta.Cracked
谢谢,不过SDK无法使用,其他正常。 |
|
我用汇编写的浏览器源代码
最初由 auser 发布 现在许多程序都是把网页镶在自己的窗口中,用ShellExecute函数就没法做到了。高级语言可以使用现成的控件实现,而汇编暂时还没看到这方面的例子,所以因工作需要,当时就写了一个。 接口IWebBrowser2已经出来了,要跳转网页可以用Navigate,前进后退也都有现成的函数,只要做个按钮和编辑框在上面,相应调用这些函数就行了,具体的函数使用MSDN上可以查到。 最初由 kanxue 发布 年龄大了,压力也大了,事情太多了。 最初由 clide2000 发布 最初由 winndy 发布 最初由 nbw 发布 最初由 prince 发布 谢谢支持,有时间一定更新。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值