吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 53425|回复: 33
收起左侧

[原创] 橙光制作工具2.0免审核发布破解教程

  [复制链接]
MXWXZ 发表于 2017-12-13 19:33
前几天用橙光做了一个AVG小游戏,然而准备给朋友玩的时候发现这货和我之前用的不一样了!现在居然要审核才能发布,并且不支持生成exe等,这么坑爹能忍?搜遍网络没有相关的方法,只能自己动手了。

0x00 分析
首先这个在本地是可以通过“测试”按钮玩的,我们就从这里入手。
运行游戏,可以看到游戏主进程是一个名为H5OrangeSim.exe的程序
a.png
我们打开进程的文件位置,发现是在安装目录的版本号\interpreter\H5目录下,并且看到了熟悉的cef框架,而且根据游戏如果发布后可以在网页上玩,猜测是使用了H5来渲染,我们直接运行一下这个文件,发现它停止工作了,显然主程序是要给它传递一些参数才能运行,接下来便是搞主程序了。

0x01 破解
查壳发现这个居然是个没壳的WPF程序,那就好办了嘛,反编译出来然后搜索orange字符串……很容易找到一个名为OpenGame_EXE文件,下上断点运行
b.png
诶怎么没有停下来啊,我们好像找错了……根据一般的命名,我们搜索包含test的函数试试,找到一个OpenGameTest的函数,看上去应该就是这个了
c.png
运行,嗯这回成功断下来了,一路跟下去进入process.Start();函数,在返回前点开processStartInfo结构体就能找到参数了
d.png
很明显,前面960,540就是分辨率,另三个不用管它,然后接了一个URL编码的游戏工程目录绝对路径和一个URL编码的标题名,我们用命令行传给H5OrangeSim.exe,发现游戏成功运行啦!

0x02 发布
接下来就是发布工作了,先把H5这整个目录拷贝出来,然后吧游戏工程扔进去,目录命名为Game。删掉backup,ui备份和工程文件。然后就是写一个py脚本来运行:
[Python] 纯文本查看 复制代码
#coding:utf-8
import os,sys
from urllib import quote
import win32api
def get_resource_path():  
    application_path = ''  
    if getattr(sys, 'frozen', False):  
        application_path = os.path.dirname(sys.executable)  
    elif __file__:  
        application_path = os.path.dirname(__file__)  
    return application_path 
    
gamepath=quote(get_resource_path()+'\Game')
runpath=get_resource_path()+'\H5OrangeSim.exe'
param='0 0 960 540 100 '+gamepath+' 替换此处为游戏标题URL编码'
win32api.ShellExecute(0, 'open', runpath, param,'',0)

注意这里的get_resource_path函数和win32api.ShellExecute是必须的,因为我们接下来需要把这个脚本转成exe,需要这样获取绝对路径,然后为了防止命令行的黑框出现,需要调用ShellExecute函数。
接下来就是用Pyinstallerer把这个脚本转换成exe文件就大功告成了!

最后楼主已卸载橙光,换用其他开源引擎XD。

免费评分

参与人数 12吾爱币 +20 热心值 +11 收起 理由
SomnusXZY + 1 + 1 热心回复!
qaz003 + 1 谢谢@Thanks!
610100 + 1 膜拜!
zhaojunkai + 1 + 1 你这6得不行啊,闲暇之余还给我们配图配操作。
Hmily + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
疯狂醉虎 + 1 + 1 用心讨论,共获提升!
羊之心羽 + 1 + 1 已答复!
藏喵喵 + 1 + 1 热心回复!
wy510000 + 1 + 1 热心回复!
cunzher + 1 + 1 用心讨论,共获提升!
zhh4827 + 1 + 1 谢谢@Thanks!
idea + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2017-12-14 10:18
直接用Procexp看下进程启动参数是不是就行了?要是逆向直接对CreateProcess下断来的快点?
 楼主| MXWXZ 发表于 2017-12-14 10:49
Hmily 发表于 2017-12-14 10:18
直接用Procexp看下进程启动参数是不是就行了?要是逆向直接对CreateProcess下断来的快点?

还是懒……当时并不清楚是否对启动参数加密之类,直接反编译一步到位懒得再换了……
13666243330 发表于 2017-12-13 19:55
且情且珍惜 发表于 2017-12-13 19:59
来学习下!!!
gdchengc 发表于 2017-12-13 20:03
来学习下......
吴源帅 发表于 2017-12-13 20:09
看看  学习一下
zshq1 发表于 2017-12-13 20:35
感谢分享 学习了
liaopeiwu 发表于 2017-12-13 21:12
学习学习
blaiyi 发表于 2017-12-13 22:04
感谢楼主分享,学习下
蓝月之泪 发表于 2017-12-13 23:09
支持一下吧
偶来啦 发表于 2017-12-14 08:29
支持破解  支持分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 11:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表