回 帖 发 新 帖 刷新版面

主题:【原创】用VB写变速齿轮(成品:“变速精英”+源代码)

Baisc 版变速齿轮:“变速精英”
绿色软件,不注册,免费版,暂时还没做热键设置,还有些细节问题,比如进程过滤、显示标志等
总共3个文件,只有90多K,带测试程序及源代码

采用hookapi编程,没有参照原版变速齿轮代码,共hook 5个函数:SetTimer,timeGetTime,GetTickCount,QueryPerformanceCounter,Sleep

变速精度设置为0.1,可以改成可调节的(不知原版变速齿轮的变速倍数为什么是2的n次方)
最大变速范围可调(5~1000),方便操作

对于多线程程序同时访问被hookAPI产生崩溃问题(幸好开始就用的多线程程序测试,刚写完关键代码就发现了),本来想采用暂停非当前线程来解决,嫌麻烦,结果通过动态改变当前线程为实时就搞定了。

记得很久以前的变速齿轮在退出时会出现时间倒退,引起某些游戏“卡死”,新的版本已经解决了这个问题。“变速精英”里也采用了一段代码,禁止时间倒退,不过代价就是有一个dll必须一直留在目标程序里面,所以你会看到目标进程里会多两个dll,和原版变速齿轮是类似的。

因为vb写的代码放到多线程里面是要崩溃的(在dll远程注入时需要多线程),在加上非vb程序里没有msvbvm60.dll运行库,还有不能做(很困难)标准dll,所以要想用纯vb做这个程序基本上不可能。这两个dll看起像vb代码,实际是powerbasic编译的,执行效率和C相近。在我发现PowerBasic的时候真的是太兴奋了,当天就开始学习,并同时着手写这个软件,两天时间写出来个雏形(期间还是走了很多弯路,老是忘不了vb,到处碰壁,因为远程的dll调试太困难,就先用纯vb写了一个程序先hook自己的api,然后改装成pb的dll,因为对PB不熟悉,再加上远程的dll错误时直接就崩溃掉了,很难调试,全是用msgbox一句一句暂停发现错误各个击破的。)

回复列表 (共21个回复)

沙发

源码不能直接运行,要略作修改才行。也许是LZ出于保护的目的?
另外。LZ可否共享一下关于powerbasic的学习资料。感激不尽。。

板凳

因为我把dll文件移动了位置,需要把成品里面的复制过去才行
这种dll是要注入到其他程序里才能运行的,不能直接运行

3 楼

4 楼

真厉害,这也能做

5 楼

继续加油  期待楼猪下一个作品

6 楼

晕,楼上的字打错了!

7 楼

那个power basic 是什么样的啊?

8 楼

原来这就是变速精灵的原理啊~
那VB内置的 Timer 会不会用到这些API呢

9 楼

你试一试不就知道了!

10 楼

真厉害 强人

我来回复

您尚未登录,请登录后再回复。点此登录或注册