`
fengpy2009
  • 浏览: 251375 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

北京市小汽车摇号程序的反编译、算法及存在的问题浅析

阅读更多

北京市摇号网站(bjhjyd.gov.cn)在2014年2月26号第一期摇号后公布了摇号程序及当期摇号数据。由于笔者也是百万摇号大军中的一员,于是第一时间下载了程序,并通过.Net Reflector对程序进行了反编译和简单分析,详情如下:
1.登录北京市摇号网站,下载摇号程序及数据

 2.程序文件和数据下载解压后如下图所示,其中CarQuotaNoPickPublic为摇号程序,ICsharpCode.SharpZipLib.dll是.NET常用的解压缩类库。另外一个是当期的摇号数据包,包含了所有申请人的申请编码和序号。

3.解压数据文件,里面是包含当期所有摇号数据的CSV文件

4.所有人的序号按照申请编码大小依序排列,比如2014年第一期,所有序号为从1到2235804。后面会提到,摇号其实不是根据申请编码,而是根据申请编码排序后的序号进行随机抽取的。

5.摇号程序界面,进过实验,的确可以得出和官方一致的结果(提前剧透,由于摇号程序中使用了Random类,该类返回的是伪随机序列,所以当种子数一定的时候,返回的结果总是一样的)。

6.使用.Net Refector对CarQuotaNoPickPublic.exe进行反编译,可以说代码质量惨不忍睹,不过靠垄断吃饭的行业,要求也不必高。问题在后面
   通过分析,发现关键的摇号算法在GetRandomNumber()函数内实现,其中的参数allRandomPickData.seed是当期的种子 基数(2014年第一期为026498), allRandomPickData.TotalNumber是当期的摇号总数(2014年第一期为 2235804),allRandomPickData.QuotaNumber为可配置的指标总数(2014年第一期为20195)。
  通过反编译后的代码可以看到,该摇号算法只是简单的使用了C#中的Random类,通过Random.Next(2235804)方法,从2235804个申请人中抽取20195个编码

 

7.始终木有发现两、三倍中签概率在算法上体现在哪里??各位有看到的请指教

 

小结,通过对代码的分析可以看出该摇号程序一是相当的随便和不严谨,二是代码质量非常初级。关系到首都200万群众切身利益的程序都可以这么粗糙,管中窥 豹,可以看出政府信息化中潜藏的问题。本文也是抛砖引玉,希望引起有关部门重视,不要让IT成为政策有效执行的最后一公里。

 

 

  • 大小: 117 KB
  • 大小: 98.9 KB
  • 大小: 141.8 KB
0
0
分享到:
评论
1 楼 nb44c 2017-06-05  
楼主厉害,现在摇到号了吗?
我看有说2倍 3倍 不是增加倍数,而是给你一个号配上几个副号码一起
这样的说法有没有道理?

相关推荐

    小程序反编译脚本下载,从此小程序源码就是囊中取物了

    此外,未经许可对他人小程序进行反编译可能涉及到版权问题,因此在实际操作中需遵守相关法律法规,尊重他人的知识产权。 总之,掌握小程序反编译技术可以帮助我们更深入地理解和学习小程序的开发,但同时也应该意识...

    微信小程序反编译(最新版).7z

    总的来说,“微信小程序反编译(最新版).7z”这个工具包为开发者提供了一种查看和学习微信小程序源码的途径,有助于提高技术水平和解决问题。但是,合理使用和遵守行业规范是每一个开发者应当谨记的原则。

    微信小程序反编译脚本!

    值得注意的是,使用反编译脚本进行微信小程序的源码获取涉及到版权和法律问题。微信官方明确禁止用于商业目的的反编译行为,因此在进行此类操作时必须遵守相关法律法规,仅限于学习和研究目的。对于开发者来说,更...

    小程序反编译工具包

    【小程序反编译工具包】是一个专为开发者和研究人员设计的实用工具,它允许用户对微信小程序进行反编译操作,以查看其源代码、理解内部逻辑或进行逆向工程研究。这个压缩包包含了所有必要的组件,解压后即可直接使用...

    微信小程序反编译工具

    4.即使小程序有N个分包也能反编译,工具包里自带典型小程序 5.获取 wxapkg 包请百度,通用的做法是:安装 夜神模拟器 -> 安装微信 -> 打开小程序 -> 打开文件管理器(自带) -> 进入目录:/data/data/...

    微信小程序反编译工具,操作简单

    微信小程序反编译工具,操作简单。电脑打开微信小程序操作一遍,然后在Applet中找到__APP__.wxapkg。把附件放入__APP__.wxapkg一个文件夹内,在此文件夹地址栏中运行cmd,输入unveilr.exe __APP__.wxapkg即可完成反...

    自用小程序反编译工具,可用于解密和还原被加密的小程序代码,以便进行修改或者了解其实现细节

    小程序反编译工具软件是一种用于解析和还原微信小程序源代码的工具。它可以将小程序中的JavaScript代码、WXML文件和WXSS样式表等资源还原成可读性较高的格式,方便开发者进行分析和修改。 适用人群包括小程序开发者...

    小程序反编译最全工具包

    工具包中包含小程序解密工具、反编译工具以及图文详细教程,还有已经解密好的小程序和小游戏源码样例。教你一步步怎么操作反编译小程序。

    vfp程序反编译

    5. **反编译的合法性和道德问题**:反编译他人软件的源代码可能存在版权和许可问题,因此在实际操作前应确保有合法的权限,遵循开源软件的许可证规定或者在必要的维护和学习目的下进行。 6. **反编译的应用场景**:...

    微信小程序自动反编译,小程序安全评估工具,发现小程序安全问题,自动解密,

    微信小程序自动反编译,小程序安全评估工具,发现小程序安全问题,自动解密,解包,可以恢复项目目录,支持Hook,小程序修改,KillWxapkg

    wxappUnpacker工具小程序反编译wxss编译

    针对这种情况,"wxappUnpacker工具"应运而生,它专门用于微信小程序的反编译工作,尤其适用于处理2021年之后开发的小程序项目。 首先,我们需要理解微信小程序的结构。一个完整的小程序通常包含JSON配置文件、WXML...

    小程序反编译工具windows版

    反编译工具有wxappUnpacker等,但是该项目比较老,使用过的都知道运行会出现错误。所以用到了新的一个工具,目前版本是exe只支持windows上运行,可以使用虚拟机或者windows系统进行反编译!编译操作将packages/***....

    微信小程序反编译工具_wx_微信小程序_

    通过反编译工具,我们可以尝试还原小程序的原始代码,便于理解和分析其功能实现、数据处理以及可能存在的安全漏洞。 2. **微信小程序抓包与断点调试** 文件“微信小程序抓包断点调试.md”和“微信小程序抓包断点...

    小程序反编译脚本2.zip

    "小程序反编译"是指通过特定工具和技术手段,将已编译的小程序代码还原为源代码的过程。这种技术通常用于分析和学习他人的代码实现,或者进行二次开发。然而,值得注意的是,未经许可对他人小程序进行反编译可能涉及...

    微信小程序反编译工具-mac.zip

    仅限于学习交流使用

    小程序反编译全套_JSON_wechat_wxapkg_小程序编译APP_反编译微信源码_

    本文将深入探讨微信小程序的反编译、编译过程以及相关的JSON、wxapkg等技术要点。 首先,我们要理解的是“wxapkg”文件。这是微信小程序的打包文件,包含了小程序的所有资源,如代码、图片、样式表等。当开发者完成...

    小程序反编译工具2-miniprogram-to-uniapp-master.zip

    小程序反编译工具,输入小程序项目路径,输出uni-app项目。 实现项目下面的js+wxml+wxss转换为vue文件,模板语法、生命周期函数等进行相应转换,其他文件原样复制,生成uni-app所需要的配置文件。

    小程序反编译文件wxappUnpacker

    《小程序反编译技术解析与应用》 在移动互联网领域,微信小程序因其轻量级、便捷的特性,已经成为开发者和企业的重要工具。然而,对于一些技术爱好者和逆向工程研究者来说,理解并分析小程序的工作原理,甚至进行反...

    微信小程序反编译教程获取源码工具.exe

    反编译微信小程序,代码已截图展示,请参考博客文章

    小程序反编译全套.zip

    本资源“小程序反编译全套.zip”包含了进行微信小程序反编译所需的一整套工具和教程,旨在帮助开发者深入理解小程序的工作原理和代码结构。 首先,反编译是将已编译的二进制代码转换回源代码的过程。在小程序的场景...

Global site tag (gtag.js) - Google Analytics