剑仙十号 外挂工程师
关注数: 19 粉丝数: 442 发帖数: 3,966 关注贴吧数: 96
注册与反注册。regsvr32 com接口dll 注册与反注册。regsvr32 com接口dll . regsvr32 路径\dm.dll regsvr32 /u 路径\dm.dll regsvr32是一个用于注册和反注册DLL文件的命令行工具,主要用于在Windows系统中注册或注销COM组件。 命令行用记事本编辑,文件后缀名保存为 .bat . 使用方法 注册DLL文件:在命令提示符中输入 regsvr32 [lbk]路径[rbk]filename.dll,其中 [lbk]路径[rbk]filename.dll 是要注册的DLL文件的完整路径和名称。如果DLL文件位于当前目录下,可以直接输入文件名。 . 反注册DLL文件:在命令提示符中输入 regsvr32 /u [lbk]路径[rbk]filename.dll,其中 /u 参数用于取消注册DLL文件。 . . 常见错误及解决方法 找不到指定模块:确保DLL文件的路径正确无误,并且文件存在。如果DLL文件位于其他目录中,请提供完整的路径。 加载库时出错:可能是由于DLL文件损坏或不兼容造成的,尝试重新下载或修复DLL文件。 注册表访问被拒绝:以管理员身份运行命令提示符,右键点击“命令提示符”图标,选择“以管理员身份运行”。 参数说明 /u:表示注销(取消注册)DLL文件。 /s:表示静默操作,不显示任何对话框。 /n:表示不要调用DllRegisterServer或DllUnregisterServer,只是加载DLL。 /i[lbk]:cmdline[rbk]:表示调用DllInstall函数,并传递可选的cmdline参数。当与 /u 一起使用时,可调用 dll uninstall。 . 历史背景和系统兼容性 regsvr32.exe 安装在 Windows XP 及更高版本的 Windows 中的 %systemroot%\\System32 文件夹中。 在 64 位版本的 Windows 操作系统上,有两个版本的 regsvr32.exe 文件:64 位版本在 %systemroot%\\System32 文件夹中,32 位版本在 %systemroot%\\SysWoW64 文件夹中。
注册与反注册。regsvr32 com接口dll 注册与反注册。regsvr32 com接口dll . regsvr32 路径\dm.dll regsvr32 /u 路径\dm.dll regsvr32是一个用于注册和反注册DLL文件的命令行工具,主要用于在Windows系统中注册或注销COM组件。 命令行用记事本编辑,文件后缀名保存为 .bat . 使用方法 注册DLL文件:在命令提示符中输入 regsvr32 [lbk]路径[rbk]filename.dll,其中 [lbk]路径[rbk]filename.dll 是要注册的DLL文件的完整路径和名称。如果DLL文件位于当前目录下,可以直接输入文件名。 . 反注册DLL文件:在命令提示符中输入 regsvr32 /u [lbk]路径[rbk]filename.dll,其中 /u 参数用于取消注册DLL文件。 . . 常见错误及解决方法 找不到指定模块:确保DLL文件的路径正确无误,并且文件存在。如果DLL文件位于其他目录中,请提供完整的路径。 加载库时出错:可能是由于DLL文件损坏或不兼容造成的,尝试重新下载或修复DLL文件。 注册表访问被拒绝:以管理员身份运行命令提示符,右键点击“命令提示符”图标,选择“以管理员身份运行”。 参数说明 /u:表示注销(取消注册)DLL文件。 /s:表示静默操作,不显示任何对话框。 /n:表示不要调用DllRegisterServer或DllUnregisterServer,只是加载DLL。 /i[lbk]:cmdline[rbk]:表示调用DllInstall函数,并传递可选的cmdline参数。当与 /u 一起使用时,可调用 dll uninstall。 . 历史背景和系统兼容性 regsvr32.exe 安装在 Windows XP 及更高版本的 Windows 中的 %systemroot%\\System32 文件夹中。 在 64 位版本的 Windows 操作系统上,有两个版本的 regsvr32.exe 文件:64 位版本在 %systemroot%\\System32 文件夹中,32 位版本在 %systemroot%\\SysWoW64 文件夹中。
【chat GPT】任务日常,每天只执行一次。 【chat GPT】任务日常,每天只执行一次。 文心一言。http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fchat.baidu.com&urlrefer=3c1707aca2bb3fcd34cb9da73147ec5b 请用c++写一段代码。 在一个循环中,函数A 每天只调用一次。 设计思路: 配置文件里面,记录有config_year, config_month, config_day 先从电脑系统,读取年, 月, 日。 再从配置文件,读取年, 月, 日。 两边的年, 月, 日 进行对比。 如果不同,则判定为新的一天。调用一次函数a(),并更新配置文件。 等待15分钟,继续下一次循环。 ======================================================= #include <iostream> #include <fstream> #include <ctime> #include <chrono> #include <thread> void A() { std::cout << "Function A called." << std::endl; } void updateConfigFile(int year, int month, int day) { std::ofstream configFile("config.txt"); configFile << year << " " << month << " " << day; configFile.close(); } int main() { int systemYear, systemMonth, systemDay; int configYear, configMonth, configDay; while (true) { // 获取系统时间 time_t now = time(0); tm *ltm = localtime(&now); systemYear = 1900 + ltm->tm_year; systemMonth = 1 + ltm->tm_mon; systemDay = ltm->tm_mday; // 读取配置文件 std::ifstream configFile("config.txt"); configFile >> configYear >> configMonth >> configDay; configFile.close(); // 比较日期 if (systemYear != configYear || systemMonth != configMonth || systemDay != configDay) { A(); updateConfigFile(systemYear, systemMonth, systemDay); } // 等待15分钟 std::this_thread::sleep_for(std::chrono::minutes(15)); } return 0; } 看到了吧。代码框架写进去,chat GPT 就帮你写作业。秒出代码 翻译成TC的就行,编程的神器。 在互联网上,C++ python的资料最多,出来的代码质量最高。一些冷门的语言,能参考的代码少。chat GPT出来的代码 就差了很多 来源:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73358-1-1.html&urlrefer=bd645df4128c398c11c4c9159768de73
【chat GPT】任务日常,每天只执行一次。 【chat GPT】任务日常,每天只执行一次。 文心一言。http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fchat.baidu.com&urlrefer=3c1707aca2bb3fcd34cb9da73147ec5b请用c++写一段代码。 在一个循环中,函数A 每天只调用一次。 设计思路: 配置文件里面,记录有config_year, config_month, config_day 先从电脑系统,读取年, 月, 日。 再从配置文件,读取年, 月, 日。 两边的年, 月, 日 进行对比。 如果不同,则判定为新的一天。调用一次函数a(),并更新配置文件。 等待15分钟,继续下一次循环。 ======================================================= #include <iostream> #include <fstream> #include <ctime> #include <chrono> #include <thread> void A() { std::cout << "Function A called." << std::endl; } void updateConfigFile(int year, int month, int day) { std::ofstream configFile("config.txt"); configFile << year << " " << month << " " << day; configFile.close(); } int main() { int systemYear, systemMonth, systemDay; int configYear, configMonth, configDay; while (true) { // 获取系统时间 time_t now = time(0); tm *ltm = localtime(&now); systemYear = 1900 + ltm->tm_year; systemMonth = 1 + ltm->tm_mon; systemDay = ltm->tm_mday; // 读取配置文件 std::ifstream configFile("config.txt"); configFile >> configYear >> configMonth >> configDay; configFile.close(); // 比较日期 if (systemYear != configYear || systemMonth != configMonth || systemDay != configDay) { A(); updateConfigFile(systemYear, systemMonth, systemDay); } // 等待15分钟 std::this_thread::sleep_for(std::chrono::minutes(15)); } return 0; } 看到了吧。代码框架写进去,chat GPT 就帮你写作业。秒出代码 翻译成TC的就行,编程的神器。 在互联网上,C++ python的资料最多,出来的代码质量最高。一些冷门的语言,能参考的代码少。chat GPT出来的代码 就差了很多 来源:http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73358-1-1.html&urlrefer=bd645df4128c398c11c4c9159768de73
内存call。call在编译生成之前,是什么状态 内存call。call在编译生成之前,是什么状态 在c++里面。我们可以把世间所有的事物,看做一个对象来描述。 而类,就是一种对象的集合。 例如玩家类,就是所有玩家的集合,每个玩家都是一个对象。 而 类的属性,就是对象共有的东西。 比方说:每个玩家都有 学号 名字 血量 蓝量 坐标x 坐标y 等等,这些就是属性。 一个类,是由类属性 + 类方法组成的。假设我是某游戏公司的程序猿,用c++定义了,一个玩家类。 class player{ //类属性 (即类变量) private int 人物ID号; //类似于身份证号、学号等. private String name; //名字 private int 当前血量; private int 当前蓝量; private int 最大血量; private int 最大蓝量; private int 体魄值; private int 武力值; private float 坐标X; private float 坐标Y; ………… //上面这些,可以看作一个属性数组. //下面就是方法了。类方法 (即类函数),就是我们可以做什么。 public void 补红(人物ID号, 小金创药id号){子程序代码………… } public void 补蓝(人物ID号, 小雪原参id号){子程序代码…………    } public void 寻路(人物ID号, 目标x, 目标y) {子程序代码………… } public void 选怪(人物ID号, 怪物id号) {子程序代码………… } public void 释放技能(人物ID号, 怪物id号, 技能id号) {子程序代码………… } } 玩家类,或者称呼为.人物类更好听一些? 遍历游戏玩家,可以得到周围的所有玩家,可以逐个查询这些玩家的信息。调用交易call,可以实现当面交易。 怪物类。 遍历游戏怪物,可以得到周围的所有怪物,可以逐个查询这些怪物的信息。调用选怪call,可以选定指定怪物。 物品类。矿石,药材等 遍历游戏物品,可以得到周围的所有物品,可以逐个查询这些物品的信息。调用捡物call,可以拾取指定物品。其它方法类似。 作者:剑仙十号. 原创作品。转载请标明作者,标明出处 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73321-1-1.html&urlrefer=c83e78d94d075f014f65de5afb00d275
内存call。call在编译生成之前,是什么状态 内存call。call在编译生成之前,是什么状态 在c++里面。我们可以把世间所有的事物,看做一个对象来描述。 而类,就是一种对象的集合。 例如玩家类,就是所有玩家的集合,每个玩家都是一个对象。 而 类的属性,就是对象共有的东西。 比方说:每个玩家都有 学号 名字 血量 蓝量 坐标x 坐标y 等等,这些就是属性。 一个类,是由类属性 + 类方法组成的。假设我是某游戏公司的程序猿,用c++定义了,一个玩家类。 class player{ //类属性 (即类变量) private int 人物ID号; //类似于身份证号、学号等. private String name; //名字 private int 当前血量; private int 当前蓝量; private int 最大血量; private int 最大蓝量; private int 体魄值; private int 武力值; private float 坐标X; private float 坐标Y; ………… //上面这些,可以看作一个属性数组. //下面就是方法了。类方法 (即类函数),就是我们可以做什么。 public void 补红(人物ID号, 小金创药id号){子程序代码………… } public void 补蓝(人物ID号, 小雪原参id号){子程序代码…………    } public void 寻路(人物ID号, 目标x, 目标y) {子程序代码………… } public void 选怪(人物ID号, 怪物id号) {子程序代码………… } public void 释放技能(人物ID号, 怪物id号, 技能id号) {子程序代码………… } } 玩家类,或者称呼为.人物类更好听一些? 遍历游戏玩家,可以得到周围的所有玩家,可以逐个查询这些玩家的信息。调用交易call,可以实现当面交易。 怪物类。 遍历游戏怪物,可以得到周围的所有怪物,可以逐个查询这些怪物的信息。调用选怪call,可以选定指定怪物。 物品类。矿石,药材等 遍历游戏物品,可以得到周围的所有物品,可以逐个查询这些物品的信息。调用捡物call,可以拾取指定物品。其它方法类似。 作者:剑仙十号. 原创作品。转载请标明作者,标明出处 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73321-1-1.html&urlrefer=c83e78d94d075f014f65de5afb00d275
内存call。call在编译生成之前,是什么状态 内存call。call在编译生成之前,是什么状态 在c++里面。我们可以把世间所有的事物,看做一个对象来描述。 而类,就是一种对象的集合。 例如玩家类,就是所有玩家的集合,每个玩家都是一个对象。 而 类的属性,就是对象共有的东西。 比方说:每个玩家都有 学号 名字 血量 蓝量 坐标x 坐标y 等等,这些就是属性。 一个类,是由类属性 + 类方法组成的。假设我是某游戏公司的程序猿,用c++定义了,一个玩家类。 class player{ //类属性 (即类变量) private int 人物ID号; //类似于身份证号、学号等. private String name; //名字 private int 当前血量; private int 当前蓝量; private int 最大血量; private int 最大蓝量; private int 体魄值; private int 武力值; private float 坐标X; private float 坐标Y; ………… //上面这些,可以看作一个属性数组. //下面就是方法了。类方法 (即类函数),就是我们可以做什么。 public void 补红(人物ID号, 小金创药id号){子程序代码………… } public void 补蓝(人物ID号, 小雪原参id号){子程序代码…………    } public void 寻路(人物ID号, 目标x, 目标y) {子程序代码………… } public void 选怪(人物ID号, 怪物id号) {子程序代码………… } public void 释放技能(人物ID号, 怪物id号, 技能id号) {子程序代码………… } } 玩家类,或者称呼为.人物类更好听一些? 遍历游戏玩家,可以得到周围的所有玩家,可以逐个查询这些玩家的信息。调用交易call,可以实现当面交易。 怪物类。 遍历游戏怪物,可以得到周围的所有怪物,可以逐个查询这些怪物的信息。调用选怪call,可以选定指定怪物。 物品类。矿石,药材等 遍历游戏物品,可以得到周围的所有物品,可以逐个查询这些物品的信息。调用捡物call,可以拾取指定物品。其它方法类似。 作者:剑仙十号. 原创作品。转载请标明作者,标明出处 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73321-1-1.html&urlrefer=c83e78d94d075f014f65de5afb00d275
内存call。call在编译生成之前,是什么状态的 内存call。call在编译生成之前,是什么状态的 在c++里面。我们可以把世间所有的事物,看做一个对象来描述。 而类,就是一种对象的集合。 例如玩家类,就是所有玩家的集合,每个玩家都是一个对象。 而 类的属性,就是对象共有的东西。 比方说:每个玩家都有 学号 名字 血量 蓝量 坐标x 坐标y 等等,这些就是属性。 一个类,是由类属性 + 类方法组成的。假设我是某游戏公司的程序猿,用c++定义了,一个玩家类。 class player{ //类属性 (即类变量) private int 人物ID号; //类似于身份证号、学号等. private String name; //名字 private int 当前血量; private int 当前蓝量; private int 最大血量; private int 最大蓝量; private int 体魄值; private int 武力值; private float 坐标X; private float 坐标Y; ………… //上面这些,可以看作一个属性数组. //下面就是方法了。类方法 (即类函数),就是我们可以做什么。 public void 补红(人物ID号, 小金创药id号){子程序代码………… } public void 补蓝(人物ID号, 小雪原参id号){子程序代码…………    } public void 寻路(人物ID号, 目标x, 目标y) {子程序代码………… } public void 选怪(人物ID号, 怪物id号) {子程序代码………… } public void 释放技能(人物ID号, 怪物id号, 技能id号) {子程序代码………… } } 玩家类,或者称呼为.人物类更好听一些? 遍历游戏玩家,可以得到周围的所有玩家,可以逐个查询这些玩家的信息。调用交易call,可以实现当面交易。 怪物类。 遍历游戏怪物,可以得到周围的所有怪物,可以逐个查询这些怪物的信息。调用选怪call,可以选定指定怪物。 物品类。矿石,药材等 遍历游戏物品,可以得到周围的所有物品,可以逐个查询这些物品的信息。调用捡物call,可以拾取指定物品。其它方法类似。 作者:剑仙十号. 原创作品。转载请标明作者,标明出处 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73321-1-1.html&urlrefer=c83e78d94d075f014f65de5afb00d275
【剑仙教程】路径类。用进程PID,获取进程的运行路径 . 这函数怎么用呢? 以前做游戏辅助,要复制一些东西到游戏目录, 需要弄个"浏览框0",让用户点击浏览框,去选择游戏目录. . 有了 用进程PID,获取进程的运行路径, 直接通过进程名,先获取进程PID,再获取游戏目录 这样使脚本更加智能化,真正实现:小前端,大后台. 把简单的前端交给用户. 把复杂的后台交给自己. var hThread 功能 执行() var PROCESS_ALL_ACCESS = #1F0FFF //进程对象的所有可能的访问权限。 var MAX_PATH = 260 //var PROCESS_QUERY_INFORMATION = 1024 //var PROCESS_VM_READ = 16 var PID数组, PID //notepad PID数组 = 进程信息("notepad.exe", 0) //默认0,为进程名获取进程PID traceprint(" PID数组: " & PID数组) PID = cint(PID数组[0]) if(PID == 0) traceprint("请打开目标进程.") cmd("Notepad", 真) sleep(1000) PID数组 = 进程信息("notepad.exe", 0) PID = cint(PID数组[0]) end var hProcess, size, path hProcess = OpenProcess0(PROCESS_ALL_ACCESS, false, PID) traceprint(" hProcess: " & hProcess) size = GetModuleFileNameExW(hProcess, null, path, MAX_PATH) traceprint("size: " & size) traceprint("path: " & path) CloseHandle(hProcess) 结束 // 功能 GetWindowThreadProcessId(hWnd, &lpdwProcessId) return dllcall("user32.dll", "long", "GetWindowThreadProcessId", "long", hWnd, "plong", lpdwProcessId) //如果函数成功,则返回值是创建窗口的线程的标识符。 //如果窗口句柄无效,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 结束 功能 OpenProcess0(dwDesiredAccess, bInheritHandle, dwProcessId) return dllcall("kernel32.dll", "long", "OpenProcess", "long", dwDesiredAccess, "long", bInheritHandle, "long", dwProcessId) 结束 功能 CloseHandle(hObject) return dllcall("kernel32.dll", "long", "CloseHandle", "long", hObject) 结束 功能 GetModuleFileNameExW(hProcess, hModule, &lpFilename, nSize) return dllcall("psapi.dll", "long", "GetModuleFileNameExW", "long", hProcess, "long", hModule, "pwchar *", lpFilename, "long", nSize) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73328-1-1.html&urlrefer=ec0f15ed04b83021e34a68d105a64951 原创作品。转载请标明作者,标明出处.
【剑仙教程】路径类。用进程PID,获取进程的运行路径 . 这函数怎么用呢? 以前做游戏辅助,要复制一些东西到游戏目录, 需要弄个"浏览框0",让用户点击浏览框,去选择游戏目录. . 有了 用进程PID,获取进程的运行路径, 直接通过进程名,先获取进程PID,再获取游戏目录 这样使脚本更加智能化,真正实现:小前端,大后台. 把简单的前端交给用户. 把复杂的后台交给自己. var hThread 功能 执行() var PROCESS_ALL_ACCESS = #1F0FFF //进程对象的所有可能的访问权限。 var MAX_PATH = 260 //var PROCESS_QUERY_INFORMATION = 1024 //var PROCESS_VM_READ = 16 var PID数组, PID //notepad PID数组 = 进程信息("notepad.exe", 0) //默认0,为进程名获取进程PID traceprint(" PID数组: " & PID数组) PID = cint(PID数组[0]) if(PID == 0) traceprint("请打开目标进程.") cmd("Notepad", 真) sleep(1000) PID数组 = 进程信息("notepad.exe", 0) PID = cint(PID数组[0]) end var hProcess, size, path hProcess = OpenProcess0(PROCESS_ALL_ACCESS, false, PID) traceprint(" hProcess: " & hProcess) size = GetModuleFileNameExW(hProcess, null, path, MAX_PATH) traceprint("size: " & size) traceprint("path: " & path) CloseHandle(hProcess) 结束 // 功能 GetWindowThreadProcessId(hWnd, &lpdwProcessId) return dllcall("user32.dll", "long", "GetWindowThreadProcessId", "long", hWnd, "plong", lpdwProcessId) //如果函数成功,则返回值是创建窗口的线程的标识符。 //如果窗口句柄无效,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。 结束 功能 OpenProcess0(dwDesiredAccess, bInheritHandle, dwProcessId) return dllcall("kernel32.dll", "long", "OpenProcess", "long", dwDesiredAccess, "long", bInheritHandle, "long", dwProcessId) 结束 功能 CloseHandle(hObject) return dllcall("kernel32.dll", "long", "CloseHandle", "long", hObject) 结束 功能 GetModuleFileNameExW(hProcess, hModule, &lpFilename, nSize) return dllcall("psapi.dll", "long", "GetModuleFileNameExW", "long", hProcess, "long", hModule, "pwchar *", lpFilename, "long", nSize) 结束 功能 启动_热键() var bool = 线程获取状态(hThread) if(bool == 0) hThread = 线程开启("执行", "") end 结束 功能 终止_热键() 线程关闭(hThread) 结束 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73328-1-1.html&urlrefer=ec0f15ed04b83021e34a68d105a64951 原创作品。转载请标明作者,标明出处.
【教程】递归遍历文件夹,自定义栈大小。 【教程】递归遍历文件夹,自定义栈大小。 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73327-1-1.html&urlrefer=9286590b6610a50070bed874236ec44e 夜尽天明 14:10:03 哪位大佬教下 递归遍历文件的方法嘛 LokmenoWer 14:11:56 递归遍历文件,全称是递归遍历文件.夹 首先你先写一个遍历文件夹 然后在调用里面判断,遍历到的是文件 还是文件夹 if(目标是文件夹)  就把文件夹作为参数传入,调用函数自身. end 夜尽天明 14:13:15 能写个示例吗 弄吧半天逛崩溃 等大神帮忙给个示例了 华 18:38:19 @夜尽天明 功能 递归遍历文件(路径) //路径="d:/IDM/" 变量 文件保存数组, 文件夹保存数组 文件遍历(路径, 文件保存数组, 文件夹保存数组) 变量 file_len = 数组大小(文件保存数组) 遍历(变量 ai = 0; ai < file_len; ai++) 调试输出(路径 & 文件保存数组[ai]) 结束 变量 folder_len = 数组大小(文件夹保存数组) 遍历(变量 ai = 0; ai < folder_len; ai++) 递归遍历文件(路径 & 文件夹保存数组[ai] & "/") 结束 结束 夜尽天明 18:57:01 @华 谢谢,明天去搞一下 厚德载物。 19:15:54 递归调用自身,50--60次就递归爆栈了 文件夹的个数,不能超过50--60个 厚德载物。 19:24:46 @华 栈空间大小,在开辟线程时 就已经定义好了。 栈空间大小 默认为2M,递归调用自身,50--60次就爆栈了。 在开辟线程时,把栈空间 定义为20M,递归调用个几百次 应该不成问题。 厚德载物。 19:29:07 用win32 API开辟线程,自定义栈大小 是这样写的。 var count = 0 function 递归proc() traceprint(cstring(count)) count++ if(count < 1000) 递归proc() end end vat lpStartAddress, lpParameter, hThread, ThreadId function 定义回调函数_点击() var StackSize = 1024 * 1024 * 20 //20M lpStartAddress = callbackmalloc("递归proc","dialogproc") lpParameter = "参数" hThread = CreateThread(null, StackSize, lpStartAddress, lpParameter, 0, ThreadId) end function 释放回调函数_点击() CloseHandle(hThread) callbackfree(lpStartAddress) end //开辟线程,win32 API函数 function CreateThread(Attributes, StackSize, Address, Parameter, Flags, &TId) return dllcall("kernel32.dll","long","CreateThread","long",Attributes, "long",StackSize, "callback",Address, "long",Parameter, "long",Flags, "plong",TId) end function CloseHandle(Handle) return dllcall("kernel32.dll","long","CloseHandle","long",Handle) end
【教程】递归遍历文件夹,自定义栈大小。 【教程】递归遍历文件夹,自定义栈大小。 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2F52tc.info%2Fthread-73327-1-1.html&urlrefer=9286590b6610a50070bed874236ec44e 夜尽天明 14:10:03 哪位大佬教下 递归遍历文件的方法嘛 LokmenoWer 14:11:56 递归遍历文件,全称是递归遍历文件.夹 首先你先写一个遍历文件夹 然后在调用里面判断,遍历到的是文件 还是文件夹 if(目标是文件夹)  就把文件夹作为参数传入,调用函数自身. end 夜尽天明 14:13:15 能写个示例吗 弄吧半天逛崩溃 等大神帮忙给个示例了 华 18:38:19 @夜尽天明 功能 递归遍历文件(路径) //路径="d:/IDM/" 变量 文件保存数组, 文件夹保存数组 文件遍历(路径, 文件保存数组, 文件夹保存数组) 变量 file_len = 数组大小(文件保存数组) 遍历(变量 ai = 0; ai < file_len; ai++) 调试输出(路径 & 文件保存数组[ai]) 结束 变量 folder_len = 数组大小(文件夹保存数组) 遍历(变量 ai = 0; ai < folder_len; ai++) 递归遍历文件(路径 & 文件夹保存数组[ai] & "/") 结束 结束 夜尽天明 18:57:01 @华 谢谢,明天去搞一下 厚德载物。 19:15:54 递归调用自身,50--60次就递归爆栈了 文件夹的个数,不能超过50--60个 厚德载物。 19:24:46 @华 栈空间大小,在开辟线程时 就已经定义好了。 栈空间大小 默认为2M,递归调用自身,50--60次就爆栈了。 在开辟线程时,把栈空间 定义为20M,递归调用个几百次 应该不成问题。 厚德载物。 19:29:07 用win32 API开辟线程,自定义栈大小 是这样写的。 var count = 0 function 递归proc() traceprint(cstring(count)) count++ if(count < 1000) 递归proc() end end vat lpStartAddress, lpParameter, hThread, ThreadId function 定义回调函数_点击() var StackSize = 1024 * 1024 * 20 //20M lpStartAddress = callbackmalloc("递归proc","dialogproc") lpParameter = "参数" hThread = CreateThread(null, StackSize, lpStartAddress, lpParameter, 0, ThreadId) end function 释放回调函数_点击() CloseHandle(hThread) callbackfree(lpStartAddress) end //开辟线程,win32 API函数 function CreateThread(Attributes, StackSize, Address, Parameter, Flags, &TId) return dllcall("kernel32.dll","long","CreateThread","long",Attributes, "long",StackSize, "callback",Address, "long",Parameter, "long",Flags, "plong",TId) end function CloseHandle(Handle) return dllcall("kernel32.dll","long","CloseHandle","long",Handle) end
内存call。根本没有什么内存脚本 内存call。根本没有什么内存脚本 6921008: 我来个例子 比如说 我要梦幻自动补血 补蓝 这个内存是可以做到 但是也是自w慰的。 什么叫自动补血补蓝,其实就是修改血的数据。 12滴血 修改成999 。 都可以 但是有一点就是 修改的内存数据 不会上传到 梦幻的服务器上 所以是自w慰 就是说 看着是999滴血 被怪砍一刀 你掉了12滴血 你也会死。 内存脚本是修改程序的资源 但是不会上传 说白了 你给自己改了个等级 改成99 别人看你 一样是原来的 等级 丝毫没有用 而且修改网络游戏的内存数据,属于非法动作 被抓的几率才更大。 所以说 内存只是修改罢了 不能实行出动作 如果谁说他会做内存脚本。 可以肯定他是骗子 大多数用内存的 都是外g挂 。 不是脚本。 外g挂跟脚本的区别在于 外g挂是属于修改游戏数据,来起到一种特别效果。 模拟脚本,是属于实行手动能操作的动作, 内存脚本 跟模拟脚本,根本就是两回事。 如果想真正实行那些 特别的效果 比如说:满血满蓝。 只能用一种方法 那就是做封包脚本,向游戏服务器.发送一个补血封包,发送一个补蓝封包,发送一个寻路封包。 就比如说把 假如 你在游戏里捡到个 彩果 你的电脑会给服务器 发送一个封包 增加一个彩果。 那么我们获取这个封包 让他不发送 把一个彩果 修改成 二十个彩果 。 再次发送到服务器 。 这样就实行了欺骗 。 但是这种方法 技术很有难度。 ======================================================= menghuan: 呵呵,遭到攻击了吧。从理论来说 调用内存call,确实可以起到补血的效果,不过有些东西不是你直接改血值 就可以实现的,因为你缺乏.触发补血效果的条件。 例子,比如远程卖东西,你必须先要满足打开商店的动作。所以根据这个原理,你要实现一个动作就必须是一个系列的动作,也就是call, 而且你直接修改血值.也会触发游戏自身的检测,比如tx的游戏都会有内存数据完整性的效验,改东西必然会触发检测,多学习吧,大家一起努力进步 其实游戏的多数东西.都是在本机完成判断的,服务端的不会有太多效验,因为如果在服务端效验这些,会给服务器增加很大压力,尤其是比如人物坐标、血量、蓝量这种经常变化的数据,如果几万台客户端的数据,都要传到服务器去判断,结果可象而知:服务器爆了,呵呵, 你模拟封包向服务器发消息,如果服务器可以接受,就说明在本机.也可以调用内存call来解决, 因为封包的信息.也是你本机的信息发送出去的。如果你做不到,只能说明水平问题,盲目下定论,被攻击也不奇怪了.
内存call。根本没有什么内存脚本 内存call。根本没有什么内存脚本 6921008: 我来个例子 比如说 我要梦幻自动补血 补蓝 这个内存是可以做到 但是也是自w慰的。 什么叫自动补血补蓝,其实就是修改血的数据。 12滴血 修改成999 。 都可以 但是有一点就是 修改的内存数据 不会上传到 梦幻的服务器上 所以是自w慰 就是说 看着是999滴血 被怪砍一刀 你掉了12滴血 你也会死。 内存脚本是修改程序的资源 但是不会上传 说白了 你给自己改了个等级 改成99 别人看你 一样是原来的 等级 丝毫没有用 而且修改网络游戏的内存数据,属于非法动作 被抓的几率才更大。 所以说 内存只是修改罢了 不能实行出动作 如果谁说他会做内存脚本。 可以肯定他是骗子 大多数用内存的 都是外g挂 。 不是脚本。 外g挂跟脚本的区别在于 外g挂是属于修改游戏数据,来起到一种特别效果。 模拟脚本,是属于实行手动能操作的动作, 内存脚本 跟模拟脚本,根本就是两回事。 如果想真正实行那些 特别的效果 比如说:满血满蓝。 只能用一种方法 那就是做封包脚本,向游戏服务器.发送一个补血封包,发送一个补蓝封包,发送一个寻路封包。 就比如说把 假如 你在游戏里捡到个 彩果 你的电脑会给服务器 发送一个封包 增加一个彩果。 那么我们获取这个封包 让他不发送 把一个彩果 修改成 二十个彩果 。 再次发送到服务器 。 这样就实行了欺骗 。 但是这种方法 技术很有难度。 ======================================================= menghuan: 呵呵,遭到攻击了吧。从理论来说 调用内存call,确实可以起到补血的效果,不过有些东西不是你直接改血值 就可以实现的,因为你缺乏.触发补血效果的条件。 例子,比如远程卖东西,你必须先要满足打开商店的动作。所以根据这个原理,你要实现一个动作就必须是一个系列的动作,也就是call, 而且你直接修改血值.也会触发游戏自身的检测,比如tx的游戏都会有内存数据完整性的效验,改东西必然会触发检测,多学习吧,大家一起努力进步 其实游戏的多数东西.都是在本机完成判断的,服务端的不会有太多效验,因为如果在服务端效验这些,会给服务器增加很大压力,尤其是比如人物坐标、血量、蓝量这种经常变化的数据,如果几万台客户端的数据,都要传到服务器去判断,结果可象而知:服务器爆了,呵呵, 你模拟封包向服务器发消息,如果服务器可以接受,就说明在本机.也可以调用内存call来解决, 因为封包的信息.也是你本机的信息发送出去的。如果你做不到,只能说明水平问题,盲目下定论,被攻击也不奇怪了.
内存call。根本没有什么内存脚本 内存call。根本没有什么内存脚本 6921008: 我来个例子 比如说 我要梦幻自动补血 补蓝 这个内存是可以做到 但是也是自w慰的。 什么叫自动补血补蓝,其实就是修改血的数据。 12滴血 修改成999 。 都可以 但是有一点就是 修改的内存数据 不会上传到 梦幻的服务器上 所以是自w慰 就是说 看着是999滴血 被怪砍一刀 你掉了12滴血 你也会死。 内存脚本是修改程序的资源 但是不会上传 说白了 你给自己改了个等级 改成99 别人看你 一样是原来的 等级 丝毫没有用 而且修改网络游戏的内存数据,属于非法动作 被抓的几率才更大。 所以说 内存只是修改罢了 不能实行出动作 如果谁说他会做内存脚本。 可以肯定他是骗子 大多数用内存的 都是外g挂 。 不是脚本。 外g挂跟脚本的区别在于 外g挂是属于修改游戏数据,来起到一种特别效果。 模拟脚本,是属于实行手动能操作的动作, 内存脚本 跟模拟脚本,根本就是两回事。 如果想真正实行那些 特别的效果 比如说:满血满蓝。 只能用一种方法 那就是做封包脚本,向游戏服务器.发送一个补血封包,发送一个补蓝封包,发送一个寻路封包。 就比如说把 假如 你在游戏里捡到个 彩果 你的电脑会给服务器 发送一个封包 增加一个彩果。 那么我们获取这个封包 让他不发送 把一个彩果 修改成 二十个彩果 。 再次发送到服务器 。 这样就实行了欺骗 。 但是这种方法 技术很有难度。 ======================================================= menghuan: 呵呵,遭到攻击了吧。从理论来说 调用内存call,确实可以起到补血的效果,不过有些东西不是你直接改血值 就可以实现的,因为你缺乏.触发补血效果的条件。 例子,比如远程卖东西,你必须先要满足打开商店的动作。所以根据这个原理,你要实现一个动作就必须是一个系列的动作,也就是call, 而且你直接修改血值.也会触发游戏自身的检测,比如tx的游戏都会有内存数据完整性的效验,改东西必然会触发检测,多学习吧,大家一起努力进步 其实游戏的多数东西.都是在本机完成判断的,服务端的不会有太多效验,因为如果在服务端效验这些,会给服务器增加很大压力,尤其是比如人物坐标、血量、蓝量这种经常变化的数据,如果几万台客户端的数据,都要传到服务器去判断,结果可象而知:服务器爆了,呵呵, 你模拟封包向服务器发消息,如果服务器可以接受,就说明在本机.也可以调用内存call来解决, 因为封包的信息.也是你本机的信息发送出去的。如果你做不到,只能说明水平问题,盲目下定论,被攻击也不奇怪了.
内存call。学习笔记 内存call。学习笔记 作者:剑仙十号 游戏基本是面向类和对象的编程。 类是虚态的东西,是基因模块。 对象是实态的东西,是类的实例化。 子程序是指子函数,它又叫功能。 子程序的关键call,就是子程序的手机码。 在电脑中,程序往往由一个主程序.和很多个子程序构成。子程序不被调用时,都是静止状态。每个子程序都配有一个手机码。 主程序需要子程序时,只需要call 0x手机号码,就能把子程序叫出来干活。 对于带参的子程序,方法也是一样的。先是把参数传进去,再call 0x手机号码,就能把子程序叫出来干活。 程序员经常讲找call写call。那这个call是啥? 在OD反汇编软件中,call 子程序的绝对地址,是调用已经编译好的,已经生成程序的子程序。 在代码注入器中, call 0x********,是调用游戏公司的子程序。这个子程序是游戏公司写的,不是我们写的。如游戏的加红子程序,加蓝子程序,行走子程序。 在tc中,调用 函数名(参数1,参数2),是调用未编译,未生成exe的函数。 当然,你用TC写一个主程序,一个弹出窗口的子程序。 经过编译生成后,再用代码注入器 call 子程序的绝对地址,也可以把它调出来,完成弹出窗口。 对于用TC,用易语言,用vc++2010编译好的子程序,有一个十分可爱的性质。 只要运行它的首句代码, 只要调用它的绝对地址,子程序就会一直执行下去,直到执行完这个子程序.所有的代码。 总结:子程序的关键call,就是子程序的手机码。 保存子程序的首句代码的地址, 就是保存这个子程序的绝对地址。 打开OD,附加自己写的TC程序/或网游,找到自己写的弹窗子程序/游戏的子程序,把这个地址用笔.记下来。 打开代码注入器,附加网游,对TC程序注入这个call, 这样就完成弹窗。完成人物的补血。不用按补血键。补红、补蓝、喊话、寻路。选怪 打怪,原理也一样。 // // 对读内存基址,注入游戏关键call,一些玩家是惊魂未定,谈之色变。 我的方法是, 坚持只读不写的原则:只读取游戏数据,不改写游戏数据。写好内存脚本后,开小号上线耍几天。不封号的就可以使用。 总结,在该用内存辅助时使用。 在不该使用时,坚决不使用。这样子收获丰厚,收益显著。分清楚什么时候该用,什么时候不该用,这是一种智慧。 原创作品。转载请标明作者,标明出处
内存call。学习笔记 内存call。学习笔记 作者:剑仙十号 游戏基本是面向类和对象的编程。 类是虚态的东西,是基因模块。 对象是实态的东西,是类的实例化。 子程序是指子函数,它又叫功能。 子程序的关键call,就是子程序的手机码。 在电脑中,程序往往由一个主程序.和很多个子程序构成。子程序不被调用时,都是静止状态。每个子程序都配有一个手机码。 主程序需要子程序时,只需要call 0x手机号码,就能把子程序叫出来干活。 对于带参的子程序,方法也是一样的。先是把参数传进去,再call 0x手机号码,就能把子程序叫出来干活。 程序员经常讲找call写call。那这个call是啥? 在OD反汇编软件中,call 子程序的绝对地址,是调用已经编译好的,已经生成程序的子程序。 在代码注入器中, call 0x********,是调用游戏公司的子程序。这个子程序是游戏公司写的,不是我们写的。如游戏的加红子程序,加蓝子程序,行走子程序。 在tc中,调用 函数名(参数1,参数2),是调用未编译,未生成exe的函数。 当然,你用TC写一个主程序,一个弹出窗口的子程序。 经过编译生成后,再用代码注入器 call 子程序的绝对地址,也可以把它调出来,完成弹出窗口。 对于用TC,用易语言,用vc++2010编译好的子程序,有一个十分可爱的性质。 只要运行它的首句代码, 只要调用它的绝对地址,子程序就会一直执行下去,直到执行完这个子程序.所有的代码。 总结:子程序的关键call,就是子程序的手机码。 保存子程序的首句代码的地址, 就是保存这个子程序的绝对地址。 打开OD,附加自己写的TC程序/或网游,找到自己写的弹窗子程序/游戏的子程序,把这个地址用笔.记下来。 打开代码注入器,附加网游,对TC程序注入这个call, 这样就完成弹窗。完成人物的补血。不用按补血键。补红、补蓝、喊话、寻路。选怪 打怪,原理也一样。 // // 对读内存基址,注入游戏关键call,一些玩家是惊魂未定,谈之色变。 我的方法是, 坚持只读不写的原则:只读取游戏数据,不改写游戏数据。写好内存脚本后,开小号上线耍几天。不封号的就可以使用。 总结,在该用内存辅助时使用。 在不该使用时,坚决不使用。这样子收获丰厚,收益显著。分清楚什么时候该用,什么时候不该用,这是一种智慧。 原创作品。转载请标明作者,标明出处
内存call。学习笔记 内存call。学习笔记 作者:剑仙十号 游戏基本是面向类和对象的编程。 类是虚态的东西,是基因模块。 对象是实态的东西,是类的实例化。 子程序是指子函数,它又叫功能。 子程序的关键call,就是子程序的手机码。 在电脑中,程序往往由一个主程序.和很多个子程序构成。子程序不被调用时,都是静止状态。每个子程序都配有一个手机码。 主程序需要子程序时,只需要call 0x手机号码,就能把子程序叫出来干活。 对于带参的子程序,方法也是一样的。先是把参数传进去,再call 0x手机号码,就能把子程序叫出来干活。 程序员经常讲找call写call。那这个call是啥? 在OD反汇编软件中,call 子程序的绝对地址,是调用已经编译好的,已经生成程序的子程序。 在代码注入器中, call 0x********,是调用游戏公司的子程序。这个子程序是游戏公司写的,不是我们写的。如游戏的加红子程序,加蓝子程序,行走子程序。 在tc中,调用 函数名(参数1,参数2),是调用未编译,未生成exe的函数。 当然,你用TC写一个主程序,一个弹出窗口的子程序。 经过编译生成后,再用代码注入器 call 子程序的绝对地址,也可以把它调出来,完成弹出窗口。 对于用TC,用易语言,用vc++2010编译好的子程序,有一个十分可爱的性质。 只要运行它的首句代码, 只要调用它的绝对地址,子程序就会一直执行下去,直到执行完这个子程序.所有的代码。 总结:子程序的关键call,就是子程序的手机码。 保存子程序的首句代码的地址, 就是保存这个子程序的绝对地址。 打开OD,附加自己写的TC程序/或网游,找到自己写的弹窗子程序/游戏的子程序,把这个地址用笔.记下来。 打开代码注入器,附加网游,对TC程序注入这个call, 这样就完成弹窗。完成人物的补血。不用按补血键。补红、补蓝、喊话、寻路。选怪 打怪,原理也一样。 // // 对读内存基址,注入游戏关键call,一些玩家是惊魂未定,谈之色变。 我的方法是, 坚持只读不写的原则:只读取游戏数据,不改写游戏数据。写好内存脚本后,开小号上线耍几天。不封号的就可以使用。 总结,在该用内存辅助时使用。 在不该使用时,坚决不使用。这样子收获丰厚,收益显著。分清楚什么时候该用,什么时候不该用,这是一种智慧。 原创作品。转载请标明作者,标明出处
1 下一页