- 博客(32)
- 收藏
- 关注
转载 配置ffmpeg最新版的办法
1. 升级glibc 查看当前系统版本:ll /lib64/libc.so.6 如果版本低于2.18 就需要升级wget http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz tar -xvf glibc-2.27.tar.gz mkdir glibc-2.27/buildcd glibc-2.27build ../con...
2019-01-04 16:52:18
1539
1
转载 键盘按键处理过程
键盘按键:1. 当按下键盘的一个按键时,键盘产生硬件中断信号发到总线,总线将信号发送到ioapic寄存器接收,ioapic寄存器存储了键盘中断的中断idt的索引号,和发给哪个cpu来处理(针对多核), 然后发给该cpu的local apic 寄存器2. local apic接收到信号,里面存储了中断idt 索引号到idt键盘中断处理地址的映射。然后发给键盘中断处理例
2017-05-10 15:02:02
1073
转载 算术编码
算术编码是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分区为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0≤n 1,编码算术编码将整个要编码的数据映射到一个位于[0,1)的实数区间中。并且输出一个小于1同时大于0的小数来表示全部数据。利用这种方法算术编码可以让压缩率无限的
2017-03-25 16:23:28
986
转载 霍夫曼编码压缩算法
原文链接:http://blog.jobbole.com/20091/前两天发布那个rsync算法后,想看看数据压缩的算法,知道一个经典的压缩算法Huffman算法。相信大家应该听说过 David Huffman 和他的压缩算法—— Huffman Code,一种通过字符出现频率,Priority Queue,和二叉树来进行的一种压缩算法,这种二叉树又叫Huffman二叉树 —— 一种
2017-03-25 15:53:01
761
原创 IAccessible模拟人工点击网页操作查询封号
// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "Oleacc.h"#include #pragma comment(lib,"comsupp.lib")#pragma comment (lib,"OLEACC.lib")
2017-03-14 22:08:51
2345
转载 恢复在WIN64上的SSDT钩子
原始位置链接:http://www.weixianmanbu.com/article/57.html 在上一篇文章里我描述了如何在Win64系统上实现SSDTHOOK,有SSDTHOOK,自然也有UNHOOKSSDT的方法,现在我就来讲一下如何实现UNHOOKSSDT。要恢复SSDT,首先要获得SSDT各个函数的原始地址,而SSDT各个函数的原始地址,自然是存储在内核文件里的。于是,有
2017-03-09 22:43:14
1845
转载 从国学来看股市
唐代青原惟信禅师有一段名言广为人知:“老僧三十年前未参禅时,见山是山,见水是水。及至后来,亲见知识,有个入处,见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。”哲学包含世界观和方法论,世界观就是“怎么看”,方法论就是“怎么做”。“怎么看”是“怎么做”的前提,看的正确才能做的正确。青原禅师的这段话,很好的阐述了“怎么看”的三个层次,我把它称之为经验层、理论层、真相层。1.经验层见
2017-02-14 09:47:26
641
原创 IE浏览器html post拦截并重定向
#include "stdafx.h"#include "windows.h"#include "exdisp.h"#include "mshtml.h"BOOL IsReadyTarget(IWebBrowser2 *browser){ HRESULT hr; VARIANT_BOOL vBool; BSTR bstrUrl; BO
2017-02-11 10:35:24
1985
原创 分析一个游戏脚本框架
1. 采用了boost thread线程管理办法。以及单体模式的对象创建办法。 启动过程: BOOL CFormMain::OnInitDialog() void ManagerStateThread::create_work_thread() void LoadAppState::handle(StateCo
2017-01-05 23:22:09
4085
原创 一个C++调用lua文件操作的工具软件
lua代码:function WriteFengHaoFile(szDate,szSrc,szDst) local fileSrc = io.open(szSrc,"r") local fileDst = io.open(szDst,"w") if fileSrc ~= nil then for line in fileSrc:lines
2016-12-29 21:41:27
363
原创 lua监听内存释放
lua代码:local dog = Dog.New() dog:eat();dog=nil;collectgarbage()c代码:#include "stdafx.h"#include "stdlib.h"#include "string.h"extern "C"{#include "lua.h"#include "lauxlib.h"
2016-12-13 17:44:43
784
原创 C++导出一个类给lua使用
lua代码如下:local dog = Dog.New() dog:eat();用到的几个lua函数:lua_setfield:void lua_setfield (lua_State *L, int index, const char *k);Does the equivalent to t[k] = v, where t is the value at the given valid index and v is the value at the top of the stack.
2016-12-13 16:54:26
651
原创 从C中生成一个lib库给lua使用
例如注册一个XMLLIB的库给lua来使用。#include "stdafx.h"#include "stdlib.h"extern "C"{#include "lua.h"#include "lauxlib.h"#include "lualib.h"}int OpenXML(lua_State *L){ printf("Open
2016-12-13 11:33:30
425
原创 c++调用lua脚本中局部函数
lua代码://这是一个lua中的局部函数local function Test() print("I am Test in Lua\n") end DoSomeThing(Test)#include "stdafx.h"#include "stdlib.h"extern "C"{#include "lua.h"#include "laux
2016-12-12 19:31:23
766
原创 lua中的轻量级userdata以及userData
function Test(userdata) print(userdata) DoSomeThing(userdata) -- userdata:showmessageend#include "stdafx.h"#include "stdlib.h"extern "C"{#include "lua.h"#include "lauxlib.h
2016-12-12 18:45:54
1148
原创 传递userdata到lua
#include "stdafx.h"#include "stdlib.h"extern "C"{#include "lua.h"#include "lauxlib.h"#include "lualib.h"}#define LightUserData 0class VEC{public: int mx; int
2016-12-12 18:39:45
262
原创 lua中的元表读写理解
举个例子:lua从表中取值的方法类此于C预言中数组。 但是向表中写入值,就不同于C的数组样式了。只要理解了下面这个简单例子,那么下面的算术类元方法这个例子中的代码就不难理解了。l={100,110,120,130}a={} for k,v in ipairs(l) do print(k,v) a[v] = k end
2016-12-08 15:02:24
437
原创 Boss死亡解密地址
0176FB26 E8 85BA0301 CALL dnf.027AB5B00176FB2B EB 28 JMP SHORT dnf.0176FB550176FB2D 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]0176FB30 50 PUSH EAX0176
2016-12-03 17:14:15
512
原创 X64进程遍历并获取进程主线程
x64下windbg显示的进程结构体1: kd> dt _SYSTEM_PROCESS_INFORMATIONole32!_SYSTEM_PROCESS_INFORMATION +0x000 NextEntryOffset : Uint4B +0x004 NumberOfThreads : Uint4B +0x008 WorkingSetPrivateSize
2016-12-03 15:08:28
2307
2
原创 返程发包
0139ACFB 6A 00 PUSH 00139ACFD E8 CEF36FFF CALL dnf.00A9A0D00139AD02 8BC8 MOV ECX,EAX0139AD04 E8 272B70FF CALL dnf.00A9D8300139AD09 6A 00 P
2016-12-01 21:31:19
350
转载 OD命令大全
OD命令行以下命令适用于 OllyDbg 的快捷命令栏插件(显示于程序的状态栏上方)CALC判断表达式WATCH添加监视表达式AT / FOLLOWDisassemble at address在地址进行反汇编ORIGDisassemble at EIP反汇编于 EIPDUMPDu
2016-11-26 14:14:58
897
原创 OD找出某个线程循环的位置
办法: 1. 查看线程所在的模块。 2. 查看线程模块的相关API. 3. 下断api,断下后执行GetCurrentThreadId,判断是否是所断的线程。
2016-11-26 12:59:16
819
原创 32位程序注入64位dll到64位进程中失败
测试32位程序注入64位dll到64 位的进程中失败。出现下面错误提示:应用程序发生异常 未知软件异常(0xc0000409)错误必须4使用64位程序注入64位dll到64位的进程才能成功。if (!DebuggerWasPresent)0021DC04 83 3D A8 99 28 00 00 cmp dword ptr [DebuggerWasPrese
2016-11-25 10:56:35
2031
1
转载 获取当前进程的父进程
DWORD GetParentProcessID(DWORD dwId) { LONG status; DWORD dwParentPID = (DWORD)-1; HANDLE hProcess; PROCESS_B
2016-11-24 14:28:51
983
原创 根据进程ID获取其主线程ID
#include #include #include #define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)#define STATUS_SUCCESS ((NTSTATUS) 0x00000000)#define SystemProcessesAndThreadsInformation 5
2016-11-24 12:53:11
4308
转载 用ZwQueryVirtualMemory枚举进程模块
//////////////////////////////////////////////////////////////////////////#include #include #include #include using namespace std;typedef enum _MEMORY_INFORMATION_CLASS{ MemoryB
2016-11-23 19:51:44
461
转载 用ZwQueryVirtualMemory遍历进程模块
;===============================================================================;use ZwQueryVirtualMemory to enum Modules of a process;subsystem:console;OS Platform:tested on Windows XP Professi
2016-11-22 15:27:32
1048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人