突然发现很久很久以前写的东西,小小怀念一下,以及浸泡在看雪(www.pediy.com)里的日子,哈哈~
----------------------------------- 传送
----------------------------------- 2008年2月4日
把下载的文件.exe直接复制到程序目录下
运行WINISO,什么还没注册?
点 帮助 菜单,点 注册 项, 随便输个注册码
再次直接运行WINISO,OK,注册完毕!
WINISO 是一个ISO制作程序, 未注册的话不能保存大于100M的ISO.
怎么办呢, 于是想到了 UltrEdit 与 OllyICE
先用peid查看WINISO, 是UPX压缩过的程序
下个UPX程序,将WINISO解压
用OllyICE打开WINISO进行调试
从头到WINISO的第一个对话框出现, 记录最左边地址栏的地址
继续出现了注册提示窗口, 记录地址
最后便出现了主窗口, 当然是未注册的, 窗口的标题上有 "Buy Now" 和 "Unregistered Version"
先利用 字符串参考找到这两个字符串被调用的位置, 在附近找找, 有条件跳转(jnz)在代码上方, 直接改成 jmp 试试, 再次调试, 果然窗口的标题上的"Buy Now" 和 "Unregistered Version"消失了, 于是记录代码数据:
755766c7461020
755866c746104400
用UltrEdit打开WINISO,然后查找以上16位数据,把 75 改为 EB (jnz -> jmp),这样直接运行WINISO也不会有"Buy Now" 和 "Unregistered Version"了.
下面是解决第一个对话框,这个似乎不管有无注册都会跳出(我从网上直接用了一个注册码,注册后这个对话框还会出现, 注册后到注册表可以把注册信息抹去)
调用这个对话框的代码上面好像也有个跳转命令(jnz),改成jmp果然就好了,于是记录代码数据:
75136a4068
用UltrEdit打开WINISO,然后查找以上16位数据,把 75 改为 EB (jnz -> jmp),这样讨厌的对话框也不会有了.
下面就用同样的方法搞定注册提示对话框,代码数据:
752cc785b4fcffffec
用UltrEdit打开WINISO,然后查找以上16位数据,把 75 改为 EB (jnz -> jmp)
本以为万事完毕,但试一下200M的文件做ISO,可是提示没注册!
所以用OllyICE调试,找到了那个验证的地方,由于我不愿花太多时间(可我后来还是耐下心看了,附录会给出一些重要偏移地址),注册码演算直接跳过了,到了验证区
,原来这里有不少跳转,一个一个NOP一下,果然OK了,记录代码数据:
752c8a41
用UltrEdit打开WINISO,然后查找以上16位数据,把 75**(jnz **) 改为 9090(nop nop),再在代码向下找到:
7522 7518 750e 7505
通通改为 9090
再次直接运行WINISO,什么还没注册?
于是点 帮助 菜单,点 注册 项, 随便输个注册码
再次直接运行WINISO,OK,注册完毕!
下面再用UPX把WINISO压缩,这样可以减小体积(1.7M -> 400K)
附录:
1BAE6 读取 username 和 registration 的开始地址
1BC92 搜索黑名单的地址
注册码黑名单:
B9EDA3326B574719D67268E9339320519E80ACD5ECDFA87F
FF940B917E86F1272F03536F72DFA14FDE3A5E60A034ED32
2AB03C9D5CF0D96827908ABD67F0045411A889996010AE26
0B7C505D2BC69D6F44F17E7499FEE7D91B6B667A1E3AD93D
9E4FA00AB9651EFC4DF9A1C5E5452BBA3E965229C83691DF
2D56DC52FB47FDF46B1BE80E42396A443B6F09AFBF4C792E
866C50120D1C3918C9AE7EF6830D3E7F36C1ED51DFCA5D71
6B9958C813E8933CA078DACE1AFCF244F1566D1B991E9250
A13036EC2772DFE2CAC8ACC6DCD22F94208A4E27847F626C
524D48C7986F0FDCAB98CB9385CDA3B847C9CA7D0175A1BC
94FB2F0057AB446FC790B6A30ED5F01EC2F45ED1023322AC
273D005D796168A62943544D98F9B41726DDB84B7EEA32FC
7B6D6675EC9E72DFCAB6ABA13949A6ADB30AB87C14A21544
2E32F51401686E023CBE28035A02003914B58B45926451D1
671647DFC4CEA1B12932C2C7830B2E5BC645C60B3BFA885A
9083BEC803D0DCC7FAEB1ADA104CAEE8A99A04FB8DB626C9
789C6D9E001B0DD4BEC9E8E6FE453065D37884F29177A06C
B5663 开始验证的地址