پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
سلام دوست من
یه توضیحی بدم این کیجن برای یه قفل نرم افزاری هست که به مجبور شدم دنبالش برم داستانش مفصله . . .
این کد طوری هست که میاد شناسه سخت افزار هارد کامپیوتر میگیره (در سیستم های مختلف متفاوته )و با کد اختصاصی(فرضا ثابت ) که ما از قبل بهش دادیم میاد یه کد اکتیو تولید میکنه .
خوب حالا کد های مبنا در الگوریتم برنامه نویس
HTML Code:
sepehr.Lock._testGlobalVar = {
Language:"fa",
TrialTime: "10",
ProductName: "Product Name",
IsDemoLicense: "true",
SerialNumber: "1111222233334444",
SerialNumberDecorated: "1111-2222-3333-4444",
ComputerId: "1234567890",
ComputerIdDecorated: "12345-67890",
Company: "Company Name",
ActivationCode: "23X32355Y967969ZZZ",
SupportInternetUrl: "1",
و کد های سیستم خودم به شرح زیر هست
HTML Code:
SerialNumberDecorated: "0615-7175-0678-3544",
ComputerId: "20214-51410",
ComputerIdDecorated: "20214-51410",
ActivationCode: "Z9X74H21XYQ13Z1581",
حالا میخواستم بدونم چجوری باید یه کیجن با اتو پلی درست کنم . لطفا کمکم کنید .
اینم کد های اصلی
کد:
// **NOTE: never update this file, this file will replaced by sepehr Softlock
if (typeof sepehr == "undefined") sepehr = {};
if (typeof sepehr.SoftLock == "undefined") sepehr.SoftLock = {};
if (!Array.indexOf) {
Array.prototype.indexOf = function(obj) {
for (var i = 0; i < this.length; i++) {
if (this[i] == obj) {
return i;
}
}
return -1;
}
}
sepehr.SoftLock._testGlobalVar = {
Language:"fa",
TrialTime: "10",
ProductName: "Product Name",
IsDemoLicense: "true",
SerialNumber: "1111222233334444",
SerialNumberDecorated: "1111-2222-3333-4444",
ComputerId: "1234567890",
ComputerIdDecorated: "12345-67890",
Phone: "Phone",
Company: "Company Name",
ActivationCode: "23X32355Y967969ZZZ",
Email: "Email@برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]il.com",
FirstName: "First Name",
LastName: "Last Name",
SupportInternetUrl: "1",
SupportInternetUrlValue: "http://www.SupportInternetUrl.com",
SupportPhone: "true",
SupportPhoneValue: "SupportPhone",
SupportSms: "true",
SupportSmsValue: "SupportSms"
};
sepehr.SoftLock.lastRegModeGet = function()
{
var lastRegMode = this.getGlobalVar("LastRegMode");
if (lastRegMode=="")
{
var hash = window.location.hash;
if (hash.length>0 && hash.charAt(0)=='#')
hash = hash.substr(1);
lastRegMode = hash;
}
return lastRegMode;
};
sepehr.SoftLock.lastRegModeSet = function(value)
{
this.setGlobalVar("LastRegMode", value);
};
sepehr.SoftLock.getGlobalBool = function(key) {
if (!this.isSoftLockHost())
return true;
return this.getGlobalInt(key) != 0;
};
sepehr.SoftLock.isDemoLicense = function() {
return this.getGlobalBool("IsDemoLicense");
};
sepehr.SoftLock.isSupportInternetAutomatic = function() {
return this.getGlobalBool("SupportInternetAutomatic");
};
sepehr.SoftLock.isSupportInternetUrl = function() {
return this.getGlobalBool("SupportInternetUrl");
};
sepehr.SoftLock.isSupportSms = function() {
return this.getGlobalBool("SupportSms");
};
sepehr.SoftLock.isSupportPhone = function() {
return this.getGlobalBool("SupportPhone");
};
sepehr.SoftLock.isSupportActivationFile = function() {
return this.getGlobalBool("SupportActivationFile");
};
sepehr.SoftLock.isTrialEnabled = function() {
return this.getGlobalBool("IsTrialEnabled");
};
sepehr.SoftLock.languageSet = function(name) {
this.setGlobalVar("Language", name);
};
sepehr.SoftLock.languageGet = function() {
return this.getGlobalVar("Language");
};
sepehr.SoftLock.serialNumberGet = function() {
return this.getGlobalVar("SerialNumber");
};
sepehr.SoftLock.computerIdGet = function() {
return this.getGlobalVar("ComputerId");
};
sepehr.SoftLock.serialNumberSet = function(value) {
return this.setGlobalVar("SerialNumber", value);
};
sepehr.SoftLock.getGlobalInt = function(key) {
var globalVar = this.getGlobalVar(key);
var ret = parseInt(globalVar, 10);
return isNaN(ret) ? 0 : ret;
};
sepehr.SoftLock.getGlobalVar = function(key) {
if (!this.isSoftLockHost()) {
return this._testGlobalVar[key] == undefined ? "" : this._testGlobalVar[key];
}
return this.sendDataToHost("Command=GetGlobalParam;Key=" + key);
};
sepehr.SoftLock.setGlobalVar = function(key, value) {
if (!this.isSoftLockHost())
this._testGlobalVar[key] = value;
this.sendDataToHost("Command=SetGlobalParam;Key=" + key + ";Value=" + String(value));
};
sepehr.SoftLock.isSoftLockHost = function() {
return window.external != null &&
window.external["sendDataToHost"] != undefined &&
sepehr.Convert.toBoolean(window.external["sendDataToHost"]("Command=IssepehrSoftLockHost"), false);
};
sepehr.SoftLock.sendDataToHost = function(parameter) {
if (!this.isSoftLockHost())
return "";
return window.external["sendDataToHost"](parameter);
};
sepehr.SoftLock.runTrial = function() {
this.sendDataToHost("Command=RunDemo");
};
sepehr.SoftLock.getCodeFromInternet = function() {
this.sendDataToHost("Command=GetCodeFromInternet");
};
sepehr.SoftLock.getCodeFromFile = function() {
this.sendDataToHost("Command=GetCodeFromFile");
};
sepehr.SoftLock.register = function() {
this.sendDataToHost("Command=Register");
};
sepehr.SoftLock.checkSerialNumber = function() {
this.sendDataToHost("Command=CheckSerialNumber");
};
// tools specific language functions
sepehr.SoftLock.LangSpecification = function(name, displayName) {
this.name = name;
this.displayName = displayName;
};
sepehr.SoftLock.getLanguages = function() {
var languages = new Array();
var xmlString = this.isSoftLockHost() ? this.getGlobalVar("AllLanguages") : "<Languages> <Language Name='en' NativeName='English'/> <Language Name='fa' NativeName='فارسی' /> </Languages>";
var xml = sepehr.Xml.loadXMLString(xmlString);
var languageElements = xml.getElementsByTagName("Language");
for (var i = 0; i < languageElements.length; i++) {
var name = languageElements[i].getAttribute("Name");
var nativeName = languageElements[i].getAttribute("NativeName");
languages[i] = new sepehr.SoftLock.LangSpecification(name, nativeName);
}
return languages;
};
sepehr.SoftLock.initLanguageCombo = function(combo) {
var langArray = this.getLanguages();
for (var i = 0; i < langArray.length; i++) {
var oOption = document.createElement("OPTION");
oOption.value = String(langArray[i].name);
oOption.text = langArray[i].displayName;
combo.options.add(oOption);
if (langArray[i].name == this.languageGet())
combo.selectedIndex = i;
}
combo.onchange = function() {
sepehr.SoftLock.languageSet(combo.value);
location.reload();
}
};
sepehr.SoftLock.serialTextBox_GetValue = function(edit1, edit2, edit3, edit4) {
var edits = new Array();
//initialize all edit boxes
edits.push(document.getElementById(edit1));
edits.push(document.getElementById(edit2));
edits.push(document.getElementById(edit3));
edits.push(document.getElementById(edit4));
var ret = "";
for (var i = 0; i < edits.length; i++)
ret += edits[i].value;
return ret;
};
sepehr.SoftLock.serialTextBox_Init = function(edit1, edit2, edit3, edit4) {
var edits = new Array();
//initialize all edit boxes
edits.push(document.getElementById(edit1));
edits.push(document.getElementById(edit2));
edits.push(document.getElementById(edit3));
edits.push(document.getElementById(edit4));
function checkForNextFocus(element) {
if (element.value.length == 4) {
var index = edits.indexOf(element);
if (index < 3) edits[index + 1].focus();
}
}
function onpaste(e) {
if (window.clipboardData == undefined)
return;
if (e == undefined) e = window.event;
var serialNumber = window.clipboardData.getData("Text");
serialNumber = serialNumber.replace(/-/g, "");
if (serialNumber.length == 16) {
for (i = 0; i < 4; i++)
edits[i].value = serialNumber.substr(i * 4, 4);
}
}
function onpropertychange(e) {
if (e == undefined) e = window.event;
var target = e.target || e.srcElement;
if (e.propertyName == "value")
checkForNextFocus(target);
}
function onkeypress(e) {
if (e == undefined) e = window.event;
var target = e.target || e.srcElement;
}
for (var i = 0; i < edits.length; i++) {
edits[i].maxLength = 4;
edits[i].onpaste = onpaste;
edits[i].onpropertychange = onpropertychange;
}
//set serial number to edit-boxes if exists
var serialNumber = this.serialNumberGet();
if (serialNumber != "" && serialNumber.length == 16) {
for (i = 0; i < 4; i++)
edits[i].value = serialNumber.substr(i * 4, 4);
}
};
sepehr.SoftLock.formatUserCodeForSms = function() {
var computerId = this.computerIdGet();
var serialNo = this.serialNumberGet();
var split = 4;
var value = computerId + serialNo;
var sms = new String();
for (var i = 0; i < value.length; i += split) {
sms += value.substr(i, split);
if (i + split < value.length) sms += "*";
}
return sms;
};
sepehr.SoftLock.checkActivationCode = function() {
switch (this.getLastError().toLowerCase()) {
case "cancel":
break;
case "":
window.location = "ResultAccept.htm";
break;
default:
this.showLastError();
}
};
sepehr.SoftLock.resourceFolderGet = function() {
return "resources/" + this.languageGet();
};
sepehr.SoftLock.resourceManager = new sepehr.resources.ResourceManager("Resources", sepehr.SoftLock.languageGet());
sepehr.SoftLock.init = function() {
var _this = this;
this.resourceManager.onIsReadyChange.addListener(this, function() {
if (!this.resourceManager.isReady())
return;
document.body.innerHTML = sepehr.Utils.updateText(document.body.innerHTML, function(module, resourceFile, resourceKey) {
if (resourceFile != null) resourceFile = resourceFile.toLowerCase();
if (resourceFile == null || resourceFile == "resources") {
return _this.resourceManager.getString(resourceKey);
}
if (resourceFile == "properties") {
return _this.getGlobalVar(resourceKey);
}
});
//sepehr.Html.loadCssFile(this.resourceFolderGet() + "/styles.css"); //security error on RTL
sepehr.Html.setDocumentDirectionAndMirror(this.resourceManager.getString("Direction"));
//update fields
this.updateFields(false);
});
this.resourceManager.init();
};
sepehr.SoftLock.insertLanguages = function() {
//adding languages
var languages = this.getLanguages();
for (var i = 0; i < languages.length; i++)
this.resourceManager.addResourceSet(languages[i].name, "resources/" + languages[i].name + "/Resources.resx");
};
sepehr.SoftLock.getLastError = function() {
return this.getGlobalVar("LastError");
};
sepehr.SoftLock.getLastErrorInfo = function() {
return this.getGlobalVar("LastErrorParam");
};
sepehr.SoftLock.showLastError = function() {
var err = this.getLastError();
var errInfo = this.getLastErrorInfo();
var msg = this.resourceManager.getString(err);
if (msg == null) msg = "Unknown Error!";
if (errInfo > "") msg += "\n\n";
alert(msg);
};
sepehr.SoftLock.updateField = function(elementId, save) {
if (document.getElementById(elementId) == undefined)
return;
var captal = elementId.substr(0, 1).toLocaleUpperCase() + elementId.substr(1);
if (save)
this.setGlobalVar(captal, document.getElementById(elementId).value);
else
document.getElementById(elementId).value = this.getGlobalVar(captal);
};
sepehr.SoftLock.updateFields = function(save) {
sepehr.SoftLock.updateField("firstName", save);
sepehr.SoftLock.updateField("lastName", save);
sepehr.SoftLock.updateField("email", save);
sepehr.SoftLock.updateField("company", save);
sepehr.SoftLock.updateField("phone", save);
sepehr.SoftLock.updateField("activationCode", save);
sepehr.SoftLock.updateField("serialNumber", save);
sepehr.SoftLock.updateField("serialNumberDecorated", save);
sepehr.SoftLock.updateField("computerId", save);
sepehr.SoftLock.updateField("computerIdDecorated", save);
sepehr.SoftLock.updateField("country", save);
sepehr.SoftLock.updateField("city", save);
sepehr.SoftLock.updateField("address", save);
if (document.getElementById("serial1") != undefined) {
if (save)
sepehr.SoftLock.serialNumberSet(sepehr.SoftLock.serialTextBox_GetValue("serial1", "serial2", "serial3", "serial4"));
else
sepehr.SoftLock.serialTextBox_Init("serial1", "serial2", "serial3", "serial4");
}
};
//startup codes
sepehr.SoftLock.insertLanguages(); //start loading languages
لطفا کمک کنید .
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
سلام گلپسر
لطفا بگو مشکلت تو کدوم تیکه از کد هه؟
من نمیتونم همه ی این کدا رو چک کنم
اون قسمت از الگوریتمی که متوجه نشدی رو بگو؟
اگه آموزش کلی این نوع و روش کیجن رو میخوای ، تو سایت پرشین کدرز هست
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
عزیزم سوالم واضح بود
ما
SerialNumberDecorated: "0615-7175-0678-3544", ComputerId: "20214-51410" ActivationCode: "Z9X74H21XYQ13Z1581", داریم و یه الگوریتم اصلی که به وسیله اون الگوریتم اکتیویشن کد برای ما ساخته میشه حالا میخوایم یه کیجن درست کنیم که اگه کامپیوتر ای دی سیستمی تغییر کرد برای ما یه اکتیویشن کد باتو جه به الگوریتمی اصلی که براتون گذاشتم درست کنه .
همین
ممنون
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
نقل قول:
عزیزم سوالم واضح بود
ما
SerialNumberDecorated: "0615-7175-0678-3544", ComputerId: "20214-51410" ActivationCode: "Z9X74H21XYQ13Z1581", داریم و یه الگوریتم اصلی که به وسیله اون الگوریتم اکتیویشن کد برای ما ساخته میشه حالا میخوایم یه کیجن درست کنیم که اگه کامپیوتر ای دی سیستمی تغییر کرد برای ما یه اکتیویشن کد باتو جه به الگوریتمی اصلی که براتون گذاشتم درست کنه .
همین
ممنون
خوب الگوریتم رو که گذاشتی
الان منظورت اینه که اگه آی پی سیستم تغییر کرد ،الگوریتم بالا ، اکتیو کد تولید نمیکنه؟
اگه آره ، این بازم سئوال کلی هه وگرنه بگو تو کدوم قسمت الگوریتم چی رو مشکل داری؟ (اینی که دادی خیلی طولانی هه و واکاوی اش خیلی طول میکشه)
منظورم از اینکه بگو کجا مشکل داری این نیست که کلا بگی کد تولید نمیکنه . مثلا الگوریتم رو که بررسی که کردی ، بگو مثلا این متغییر یا آرایه و ... اینجا چرا جواب نمیده؟ بصورت کلی که بسیار وقت گیر میشه
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
الان منظورت اینه که اگه آی پی سیستم تغییر کرد ،الگوریتم بالا ، اکتیو کد تولید نمیکنه؟دقیقا منظورم همینه و لی اون ای پی نیشت شناسه کامپیوتره .
حالا میتونی کمک کنی به روش معکوس یا هر چیز دیگه ای به کمک نرم افزار اتو پلی یا هر نرم افزار دیگه ای بتونیم یه کیجن درست کنیم ؟
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
نقل قول:
الان منظورت اینه که اگه آی پی سیستم تغییر کرد ،الگوریتم بالا ، اکتیو کد تولید نمیکنه؟دقیقا منظورم همینه و لی اون ای پی نیشت شناسه کامپیوتره .
حالا میتونی کمک کنی به روش معکوس یا هر چیز دیگه ای به کمک نرم افزار اتو پلی یا هر نرم افزار دیگه ای بتونیم یه کیجن درست کنیم ؟
من نرم افزار دیگه بلد نیستم
اگه سراغ نرم افزار دیگه ای میخای بری ، طرف ویژال استودیو و زبان #C برو که اساتید تو این انجمن هستن
----
خوب منم که گفتم . اگه خودت کد بالا رو نوشته باشی باید بدونی کدوم تیکه رو مشکل داری. حالا اون تیکه رو فقط ازم سئوال بپرس و فقط اون یه تیکه کدش رو بزار
نه من تو پروژه ی کلی به کسی کمک نمیکنم
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
ممنونم اما گفتم شاید بتونید کمکم کنید .:1. (28):
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
نقل قول:
ممنونم اما گفتم شاید بتونید کمکم کنید .:1. (28):
کمک میکنم گلپسر (البته تا جایی که بلد باشم)
در صورتی که خودت بخای و فقط جاهایی که مشکل داری رو بگی نه این جوری کلیات رو
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی
خوب بیا از صفر شروع کنیم .
قسمتی که میاد کد
SerialNumber ComputerId
رو میگیره و تبدیل به کد اکتیویشن میکنه کدوم قسمته ؟
پاسخ: کمک در رابطه با برنامه نویسی اتو پلی