TA的每日心情 | 开心 2018-7-9 08:20 |
---|
签到天数: 869 天 [LV.10]以坛为家III
|
本帖最后由 gagmeng 于 2016-2-26 21:35 编辑
软件介绍:
- OpalCalc is a brand new type of calculator for the PC. As easy to use as Notepad or a word processor, OpalCalc allows you to insert natural language as part of the sum, along with multi-line support so you can go back and adjust your previous calculations. Want a tiny footprint on the screen for a single sum? Resize accordingly. Want it to fill the screen for heavy-duty work? OpalCalc can adapt.
- Featuring a lightweight footprint, on-the-fly calculation as you type, percentages, variable support, hundreds of units and functions, extensive notation support, intuitive design/documentation and much more. Once you've tried it, you'll never want to go back to your ordinary desktop (or PC) calculator again!
用户评价:
- PCWorld "Step Away From the Spreadsheet and Dig Donationware Gem OpalCalc"
- MakeUseOf.com: "OpalCalc: Cool Text-based Calculation App To Replace Your Windows Calc"
- LifeHacker: "Perform Long Calculations in Plain English with These Awesome Calculator Apps"
- Softoxi.com:"OpalCalc is a very convenient, reliable and effective calculator"
- FindMySoft.com "OpalCalc ? A Very Useful Calculator"
软件特性:- Lightweight footprint (only 600k)
- Multiline support (notepad style)
- Configurable GUI with colour schemes
- Built-in 'Quickstart' tutorial
- Full colour coding
- Multiple undo/redo, zoom in/out, etc.
- Numerous built-in variables and functions (create your own too!)
- Percentage support
- Hundreds of measures, like kilograms and feet (create your own too)
- Extensive date and time support
- Currency support with conversion (data courtesy of themoneyconverter.com)
- Portable (260k from a pen drive!)
- Load/save/print support
- Programmer syntax and functions
- Custom number base support
- Advanced notation support
- Comma decimal point support for Europe, Russia, and South America etc.
软件界面:
和谐教程:
1、从官网说明可以了解到限制“The demo/'lite' version is fully functional, except for a 5 line limit for calculations. To overcome this limitation and help support the development of OpalCalc, upgrade using credit/debit card, or through Paypal (user license lasts forever, including updates, and there's no faffing about with keys or passwords).”
2、使用NET把编译工具(net reflector、ILSPY、justdecompile或者dnspy)加载OpalCalc.exe;
3、搜索字符串“5 lines”可定位到如下函数
public void createAnswers(string text)
{
...
if (!this.determineWhetherToDisplayAnswer(this.demo, array, i, text))
{
this.answerWhole = "Demo allows only 5 lines";
if (!this.demomsg)
{
this.demomsg = true;
MessageBox.Show(Program.frm, "This demo/lite version of OpalCalc only allows 5 lines (excluding included tutorial and examples such as 'shopping' or 'workday'). You can still do a lot with that, but for unlimited lines, please upgrade via the website at: www.skytopia.com/software/opalcalc\n\n.....or select the red/square dropdown menu button and click 'Upgrade OpalCalc'. Paid users will often also receive a more up-to-date version of OpalCalc than demo users.");
}
}
...
}
从上面函数中可知道只要if (!this.determineWhetherToDisplayAnswer(this.demo, array, i, text))中为false即破解了限制,进入关键函数determineWhetherToDisplayAnswer;
private bool determineWhetherToDisplayAnswer(bool demo, string[] lines, int n, string text)
{
return !demo || this.countNonSpaceLines(lines, n) < 5 || (text.Contains("OpalCalc QuickStart:") && text.Contains("Thank you for reading and enjoy OpalCalc! You may press F1 now, or reboot OpalCalc") && text.Contains("More complicated mathematical expressions are supported")) || (lines[n].Length >= 5 && (jtext.complexsums.Contains(lines[n]) || jtext.shopping.Contains(lines[n]) || jtext.workday.Contains(lines[n]) || jtext.shoppingandroom.Contains(lines[n]) || jtext.datesandtimes.Contains(lines[n])));
}
4、根据determineWhetherToDisplayAnswer函数可看出,只要demo输入为false即OK,因此可确定if (!this.determineWhetherToDisplayAnswer(this.demo, array, i, text))中this.demo必须为false;
5、分析对this.demo的引用,定位到
private void Form1_Load(object sender, EventArgs e)
{
...
Program.debugStartup("calc complete", calc.debugToDisk);
this.cc.demo = true;
this.rtbi.SetRTBO(this.rtbo, this.cc);
...
}
只需修改为如下即可破解
private void Form1_Load(object sender, EventArgs e)
{
...
Program.debugStartup("calc complete", calc.debugToDisk);
this.cc.demo = false;
this.rtbi.SetRTBO(this.rtbo, this.cc);
...
}
5、使用IDA或者dnspy查看this.cc.demo = false;这句语句的地址
/* 0x00012A92 17 */ IL_0056: ldc.i4.1
/* 0x00012A93 7D45000004 */ IL_0057: stfld bool OpalCalc.calc::demo
6、使用winhex将地址0x00012A92修改为16即可
破解后效果展示:
和谐文件下载:(老话长谈,此文件仅供个人学习和交流,其它用途请购买正版。)
大家多给加点威望和PYB哦,你们的支持是我永远的动力!
|
评分
-
查看全部评分
|