一个简单CrackMe分析+keyGen编写
2016-10-24 20:53
441 查看
工具:JEB+android studio
用JEB打开发现做了混淆,首先找到入口的地方,找到onCreate函数分析
设置了一个Listener应该是button按钮的,通过更进分析,知道了注释中几个函数的功能,
一种方法是修改代码的判断逻辑直接绕过,不过既然注册码就是machine_id的MD5值,所以写keyGen应该更简单了
在android6.0以下系统运行正常,以上就会由于权限问题直接停止运行,需要动态权限申请,暂时还不会...
这算是我第一个完整分析的apk的例子了吧,收获还是挺多的,写keyGen时也学习了一些android知识,感觉挺好的
最重要的感悟是:①用好JEB的rename和comment功能能帮助我们更好的分析程序②分析程序是需要足够的耐心,耐力
apk文件:点击下载
用JEB打开发现做了混淆,首先找到入口的地方,找到onCreate函数分析
public void onCreate(Bundle arg3) { super.onCreate(arg3); this.setContentView(2130903040); this.findViewById(2131034113).setOnClickListener(((View$OnClickListener)this)); this.mContext = this.getBaseContext(); PreferenceManager.getDefaultSharedPreferences(this.mContext); this.b = new b(this.mContext); this.a = new c(this.mContext); this.b.a(); // 计算machine_id保存在sharedpreferences中 if(c.a()) { // 判断是否已经注册 try { this.a(); } catch(Exception v0) { v0.printStackTrace(); } } }
设置了一个Listener应该是button按钮的,通过更进分析,知道了注释中几个函数的功能,
一种方法是修改代码的判断逻辑直接绕过,不过既然注册码就是machine_id的MD5值,所以写keyGen应该更简单了
TelephonyManager systemService = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String deviceId = systemService.getDeviceId(); String line1Number = systemService.getLine1Number(); String deviceSoftwareVersion = systemService.getDeviceSoftwareVersion(); String simSerialNumber = systemService.getSimSerialNumber(); String subscriberId = systemService.getSubscriberId(); PackageManager packageManager = getPackageManager(); String signatures=null; try { signatures = packageManager.getPackageInfo("com.lohan.crackme1", PackageManager.GET_SIGNATURES).signatures[0].toCharsString(); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } String str=deviceId+line1Number+deviceSoftwareVersion+simSerialNumber+subscriberId+signatures; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(str.getBytes(),0,str.length()); String s = new BigInteger(1, md5.digest()).toString(16); Log.v("meg",s); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } }
在android6.0以下系统运行正常,以上就会由于权限问题直接停止运行,需要动态权限申请,暂时还不会...
这算是我第一个完整分析的apk的例子了吧,收获还是挺多的,写keyGen时也学习了一些android知识,感觉挺好的
最重要的感悟是:①用好JEB的rename和comment功能能帮助我们更好的分析程序②分析程序是需要足够的耐心,耐力
apk文件:点击下载
相关文章推荐
- 一个简单的crackme,程序是由.Net编写的
- visual studio 2010下 C# 编写的一个简单的网页源代码分析、链接抓取器
- 一个简单的CrackMe分析
- Nginx源码分析与实践---(一)编写一个简单的Http模块
- 一个简单crackme破解及注册机编写
- 一个简单的CrackMe分析
- 一个.net KeygenMe简单分析
- 利用C#编写一个简单的抓网页应用程序
- Win32汇编教程四 编写一个简单的窗口
- 一个用php3编写的简单计数器
- 一个简单木马程序的编写
- 利用C#编写一个简单的抓网页应用程序
- 一个用php3编写的简单计数器
- Linux下,使用C/C++编写"静态链接库"的一个简单例子
- 用c#编写一个vb 工程源码分析工具(带源码工程下载)
- 一步一步SharePoint 2007之二十三:编写一个最简单的WebPart(1)——创建工程
- 利用C#编写一个简单的抓网页应用程序
- 对一个桌面主题文件的简单分析
- Linux下,使用C/C++编写一个简单的消息处理程序
- 一步一步SharePoint 2007之二十五:编写一个最简单的WebPart(3)——添加WebPart