技术大牛们英雄联盟脚本怎么制作的,需要哪些技术?
时间:2024-01-26 16:40:01 | 来源:网站运营
时间:2024-01-26 16:40:01 来源:网站运营
技术大牛们英雄联盟脚本怎么制作的,需要哪些技术?:1、熟练的C语言知识
目前的外挂大部分都是用BC或者是vc写的,拥有熟练的C语言知识是写外挂的基本条件
2、具有很强的汇编基础 一般游戏都不可能有原代码的,必须*反汇编或者跟踪的办
法来探索其中的机理 ,所以有强的汇编基础也是必不可少的条件
3、熟练掌握跟踪和调试的工具
有了上面2个条件后,掌握一些工具也是很有必要的
跟踪的工具,softice当然是不二之选,至于反汇编的工具,我推荐用IDA PRO
这个工具反汇编出来的代码结构清晰,非常好读
如果你不具有上面的条件,还是先把基础打好,再来写外挂吧,一分耕耘,一分收获,天下没有白掉的馅饼的
二、写外挂面临的基本技术问题
1、修改进程的执行代码 要修改进程的执行代码,要先取得进程的ID,如果是由外挂程序启动,返回值里就有进程ID,
如果不是的话,
需要用findwindow找到窗口句柄,再用GetWindowProcessID取得进程ID,取得进程ID以后,就可以用
writeprocessmemory来修改进程的执行代码了,使程序按照我们的意愿来执行,石器外挂里的不遇敌、寸步遇敌
就是用这样的方法来实现的
2、截获外挂发送和接收的封包
除了通过修改代码来实现的功能以外,很多的功能都是通过修改封包来实现的,要修改封包,首先要能截获它。
第一步是要跟踪出发和收的位置,至于怎么跟踪,我以后会提到,找到位置以后,有2个办法,一是在那个位置加一
个jmp语句,跳到你的处理函数位置,处理完后,再跳回来,这种方法要求比较高,需要处理好很多事情,另一种办法
是往那个位置写条能造成例外的指令,比如int 3,然后用DebugActiveProcess调试游戏进程,这样每当游戏执行到那个
位置的时候,就会停下来,到外挂程序里面去,等外挂程序处理完以后,用ContinueDebugEvent 继续运行程序。
可能这些东西看起来会很枯燥,但是你要是入门了,就会轻松起来,可以去找一个水平高的老师带着你,这样能够很好的提高自己的水平
如果对计算机逆向这块技术感兴趣的可以找我交流
def recognition_captcha(data):
''' 识别验证码 '''
file_id = str(uuid.uuid1())
filename = 'captcha_'+ file_id +'.gif'
filename_png = 'captcha_'+ file_id +'.png'
if(data is None):
return
data = base64.b64decode(data.encode('utf-8'))
with open( filename ,'wb') as fb:
fb.write( data )
appid = 'appid' # 接入优图服务,注册账号获取
secret_id = 'secret_id'
secret_key = 'secret_key'
userid= 'userid'
end_point = TencentYoutuyun.conf.API_YOUTU_END_POINT
youtu = TencentYoutuyun.YouTu(appid, secret_id, secret_key, userid, end_point) # 初始化
# 拿到的是gif格式,而优图只支持 JPG PNG BMP 其中之一,这时我们需要 pip install Pillow 来转换格式
im = Image.open( filename)
im.save( filename_png ,"png")
im.close()
result = youtu.generalocr( filename_png , data_type = 0 , seq = '') # 0代表本地路径,1代表url
return result
def get_captcha(sessiona,headers):
''' 获取验证码 '''
need_cap = False
while( need_cap is not True):
try:
sessiona.get('
https://www.zhihu.com/signin',headers=headers) # 拿cookie:_xsrf
resp2 = sessiona.get('
https://www.zhihu.com/api/v3/oauth/captcha?lang=cn',headers=headers) # 拿cookie:capsion_ticket
need_cap = json.loads(resp2.text)["show_captcha"] # {"show_captcha":false} 表示不用验证码
time.sleep( 0.5 + random.randint(1,9)/10 )
except Exception:
continue
try:
resp3 = sessiona.put('
https://www.zhihu.com/api/v3/oauth/captcha?lang=cn',headers=headers) # 拿到验证码数据,注意是put
img_data = json.loads(resp3.text)["img_base64"]
except Exception:
return