[原创]AD Blocker Trial 注册算法
发表于:
2012-8-16 16:12
15890
[原创]AD Blocker Trial 注册算法
【文章标题】: 【原创】AD Blocker Trial 注册算法
【下载地址】: 48cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3q4K6i4K6u0W2j5X3q4A6k6s2g2Q4x3X3g2U0L8$3#2Q4x3V1k6S2i4K6u0r3K9i4c8W2L8g2)9K6c8X3c8G2j5$3W2V1i4K6y4p5x3e0f1H3y4e0j5^5i4K6t1$3M7s2u0W2i4K6y4p5N6$3g2T1i4K6g2X3j5h3#2Q4y4h3k6K6k6b7`.`.
【操作平台】: Ubuntu11.10
【使用工具】: Apktool v1.4.3 , dex2jar-0.0.9.9, jd-gui-0.3.3
【作者邮箱】: iltgcl@163.com
【作者声明】: 仅作为研究交流使用。
【软件名称】: 英文名: AD Blocker Trial 中文名:广告拦截器及净触发器的审判。
【破解过程】
先安装程序,启动以后,点击弹出菜单Buy 选项,进入到注册界面。发现程序已经给出了我的Product Code:44173112, 输入试练码:12345678,程序弹出对话框表示出错了。
好了,基本信息搜集完了。使用dex2jar反编译,然后用jd-gui打开,太好了,代码尽然没有混淆,省了不少麻烦。虽然这个程序的算法非常简单,但我还是尽量详细的将分析过程写下来。
首先需要找到注册界面。从前面信息搜集过程中知道是在弹出菜单中点击Buy选项出现的注册界面,找到如下代码片段
public boolean onOptionsItemSelected(MenuItem paramMenuItem)
{
int i = 1;
switch (paramMenuItem.getItemId())
{
default:
i = 0;
case 1:
case 0:
case 2:
case 3:
case 4:
}
while (true)
{
return i;
showAbout();
continue;
showHelp();
continue;
Intent localIntent = new Intent();
localIntent.setClass(this, ProtectorPreferencesActivity.class);
startActivity(localIntent);
continue;
[COLOR=Red] showDonateDialog();[/COLOR]
continue;
startActivity(new Intent("android.intent.action.VIEW", Uri.parse("market://search?q=\"SmartDog Studio\"")));
}
} private void showDonateDialog()
{
View localView = LayoutInflater.from(this).inflate(2130903043, null);
EditText localEditText = (EditText)localView.findViewById(2131296263);
((TextView)localView.findViewById(2131296262)).setText(RegUtil.getProdCode(this));
((TextView)localView.findViewById(2131296264)).setText(ContentUtil.getDonateGuide(this));
new AlertDialog.Builder(this).setTitle(Html.fromHtml("<b>" + getText(2131165207) + "</b>")).setView(localView).setPositiveButton("OK", [COLOR=Red]new ADBlocker.3[/COLOR](this, localEditText)).setNeutralButton("Buy", new ADBlocker.4(this)).setNegativeButton("Cancel", null).show();
} class ADBlocker$3
implements DialogInterface.OnClickListener
{
public void onClick(DialogInterface paramDialogInterface, int paramInt)
{
if (this.val$key.getText() != null)
ADBlocker.[COLOR=Red]access$3[/COLOR](this.this$0, this.this$0, this.val$key.getText().toString());
}
}
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
上传的附件: