Theme Builder註冊碼分析
Theme Builder(V 4.01),是一款類似於資源管理器的軟體,功能是十分強大的!它是一個共享軟體,它會提供你30天的試用和10次的儲存功能!如果你感興趣的話,你可以到www.themetech.net去下載!
察看,是ASPack v2.001加的殼,脫之!Borland Delphi寫的DeDe檢視!
檢視註冊視窗的OkButtonClick事件!
004981C4 53 push ebx
004981C5 8BD8 mov ebx, eax
004981C7 8BC3 mov eax, ebx
* Reference to : TRegForm.ProcessReg() ;註冊的過程,關鍵進入
|
004981C9 E826000000 call 004981F4
004981CE 3D8D030000 cmp eax, $0000038D
004981D3 7509 jnz 004981DE
004981D5 8BC3 mov eax, ebx
* Reference to : TRegForm.InComplete()
|
004981D7 E898030000 call 00498574
004981DC EB0A jmp 004981E8
004981DE 48 dec eax
004981DF 7507 jnz 004981E8
004981E1 8BC3 mov eax, ebx
* Reference to : TRegForm.Complete()
|
004981E3 E8E0010000 call 004983C8
* Reference to RegForm
|
004981E8 A1588B4F00 mov eax, dword ptr [$004F8B58]
* Reference to : TApplication._PROC_0044CB90()
|
004981ED E89E49FBFF call 0044CB90
004981F2 5B pop ebx
004981F3 C3 ret
我們進入004981C9處的Call
004981F4 55 push ebp
004981F5 8BEC mov ebp, esp
004981F7 6A00 push $00
004981F9 6A00 push $00
004981FB 6A00 push $00
004981FD 53 push ebx
004981FE 56 push esi
004981FF 8BD8 mov ebx, eax
00498201 33C0 xor eax, eax
00498203 55 push ebp
* Possible String Reference to: '[傣脬^[]U(?S3???
| UU??3UhII'
|
00498204 68B8834900 push $004983B8
***** TRY
|
00498209 64FF30 push dword ptr fs:[eax]
0049820C 648920 mov fs:[eax], esp
0049820F 685C8B4F00 push $004F8B5C
00498214 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.mynae : TEdit
|
00498217 8B83CC020000 mov eax, [ebx+$02CC]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
0049821D E802B7F9FF call 00433924
00498222 8B45FC mov eax, [ebp-$04]
00498225 B901000000 mov ecx, $00000001
0049822A BA01000000 mov edx, $00000001
* Reference to: System.Proc_004041D8
|
0049822F E8A4BFF6FF call 004041D8
00498234 68608B4F00 push $004F8B60
00498239 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.mynae : TEdit
|
0049823C 8B83CC020000 mov eax, [ebx+$02CC]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
00498242 E8DDB6F9FF call 00433924
00498247 8B45FC mov eax, [ebp-$04]
0049824A B901000000 mov ecx, $00000001
0049824F BA04000000 mov edx, $00000004
* Reference to: System.Proc_004041D8
|
00498254 E87FBFF6FF call 004041D8
00498259 68648B4F00 push $004F8B64
0049825E 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.mynae : TEdit
|
00498261 8B83CC020000 mov eax, [ebx+$02CC]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
00498267 E8B8B6F9FF call 00433924
0049826C 8B45FC mov eax, [ebp-$04]
0049826F B901000000 mov ecx, $00000001
00498274 BA07000000 mov edx, $00000007
* Reference to: System.Proc_004041D8
|
00498279 E85ABFF6FF call 004041D8
0049827E A15C8B4F00 mov eax, dword ptr [$004F8B5C]
* Reference to: Unit_00408224.Proc_004091B4
|
00498283 E82C0FF7FF call 004091B4;取得第一部分的第1個數字
* Reference to GlobalVar_004F8B68
|
00498288 A3688B4F00 mov dword ptr [$004F8B68], eax;儲存
0049828D A1608B4F00 mov eax, dword ptr [$004F8B60]
* Reference to: Unit_00408224.Proc_004091B4
|
00498292 E81D0FF7FF call 004091B4;取得第一部分的第4個數字
* Reference to GlobalVar_004F8B6C
|
00498297 A36C8B4F00 mov dword ptr [$004F8B6C], eax;儲存
0049829C A1648B4F00 mov eax, dword ptr [$004F8B64]
* Reference to: Unit_00408224.Proc_004091B4
|
004982A1 E80E0FF7FF call 004091B4;取得第一部分的第7個數字
* Reference to GlobalVar_004F8B70
|
004982A6 A3708B4F00 mov dword ptr [$004F8B70], eax;儲存
004982AB 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.mynae : TEdit
|
004982AE 8B83CC020000 mov eax, [ebx+$02CC]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
004982B4 E86BB6F9FF call 00433924 ;取得第一部分的數字
004982B9 8D45FC lea eax, [ebp-$04]
004982BC 50 push eax ;儲存
004982BD 8D55F8 lea edx, [ebp-$08]
* Reference to control TRegForm.doty : TEdit
|
004982C0 8B83D0020000 mov eax, [ebx+$02D0]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
004982C6 E859B6F9FF call 00433924
004982CB 8B55F8 mov edx, [ebp-$08] ;第二部分數字
004982CE 58 pop eax ;取出儲存的
* Reference to: System.Proc_00403FDC
|
004982CF E808BDF6FF call 00403FDC;第一部分和第二部分連線
004982D4 8B45FC mov eax, [ebp-$04]
* Reference to: System.Proc_00403FD4
|
004982D7 E8F8BCF6FF call 00403FD4;取得連線字串的個數
004982DC 83F80A cmp eax, +$0A ;是否為10個
004982DF 0F85AE000000 jnz 00498393
004982E5 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.doty : TEdit
|
004982E8 8B83D0020000 mov eax, [ebx+$02D0]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
004982EE E831B6F9FF call 00433924
004982F3 8B45FC mov eax, [ebp-$04]
004982F6 8A10 mov dl, byte ptr [eax] ;取出1個給bl
004982F8 8D45F4 lea eax, [ebp-$0C]
* Reference to: System.Proc_00403EFC
|
004982FB E8FCBBF6FF call 00403EFC
00498300 8B45F4 mov eax, [ebp-$0C]
* Reference to: Unit_00408224.Proc_004091B4
|
00498303 E8AC0EF7FF call 004091B4;把輸入的1個字元'4'=34H轉換為10進位制的1個數字4
00498308 50 push eax ;結果儲存
00498309 A1688B4F00 mov eax, dword ptr [$004F8B68] ;取出第一部分的第1位
0049830E 5A pop edx ;彈出給edx
0049830F 8BCA mov ecx, edx ;送給ecx
00498311 99 cdq ;擴充套件,即edx清0
00498312 F7F9 idiv ecx ;相除
00498314 83FA03 cmp edx, +$03 ;關鍵1,餘數是否為3
00498317 7571 jnz 0049838A
00498319 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.doty : TEdit
|
0049831C 8B83D0020000 mov eax, [ebx+$02D0]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
00498322 E8FDB5F9FF call 00433924
00498327 8B45FC mov eax, [ebp-$04]
* Reference to field TEdit.OFFS_0001
|
0049832A 8A5001 mov dl, byte ptr [eax+$01] ;取第二部分的第二個字元
0049832D 8D45F4 lea eax, [ebp-$0C]
* Reference to: System.Proc_00403EFC
|
00498330 E8C7BBF6FF call 00403EFC
00498335 8B45F4 mov eax, [ebp-$0C]
* Reference to: Unit_00408224.Proc_004091B4
|
00498338 E8770EF7FF call 004091B4 ;轉換
0049833D 50 push eax ;結果存入eax,壓棧儲存
0049833E A16C8B4F00 mov eax, dword ptr [$004F8B6C] ;取出第一部分第4位值
00498343 5A pop edx ;彈出結果
00498344 8BCA mov ecx, edx
00498346 99 cdq
00498347 F7F9 idiv ecx
00498349 83FA03 cmp edx, +$03 ;關鍵2,餘數是否為3
0049834C 753C jnz 0049838A
0049834E 8D55FC lea edx, [ebp-$04]
* Reference to control TRegForm.doty : TEdit
|
00498351 8B83D0020000 mov eax, [ebx+$02D0]
* Reference to: controls.TControl.GetText(TControl):TCaption;
|
00498357 E8C8B5F9FF call 00433924
0049835C 8B45FC mov eax, [ebp-$04]
* Reference to field TEdit.OFFS_0002
|
0049835F 8A5002 mov dl, byte ptr [eax+$02] ;取出第2部分的第3個字元
00498362 8D45F4 lea eax, [ebp-$0C]
* Reference to: System.Proc_00403EFC
|
00498365 E892BBF6FF call 00403EFC
0049836A 8B45F4 mov eax, [ebp-$0C]
* Reference to: Unit_00408224.Proc_004091B4
|
0049836D E8420EF7FF call 004091B4 ;轉換儲存
00498372 50 push eax
00498373 A1708B4F00 mov eax, dword ptr [$004F8B70];取出第一部分第7位值
00498378 5A pop edx
00498379 8BCA mov ecx, edx
0049837B 99 cdq
0049837C F7F9 idiv ecx
0049837E 83FA02 cmp edx, +$02 ;關鍵3,餘數是否為2
00498381 7507 jnz 0049838A
00498383 BE01000000 mov esi, $00000001 ;置成功標誌
00498388 EB0B jmp 00498395
0049838A 8BC3 mov eax, ebx
* Reference to : TRegForm.checkOther()
|
0049838C E8D3030000 call 00498764
00498391 EB02 jmp 00498395
00498393 33F6 xor esi, esi
00498395 33C0 xor eax, eax
00498397 5A pop edx
00498398 59 pop ecx
00498399 59 pop ecx
0049839A 648910 mov fs:[eax], edx
****** FINALLY
|
* Possible String Reference to: '^[]U(?S3??UU?
| ,?3UhII'
|
0049839D 68BF834900 push $004983BF
004983A2 8D45F4 lea eax, [ebp-$0C]
* Reference to: System.Proc_00403D58
|
004983A5 E8AEB9F6FF call 00403D58
004983AA 8D45F8 lea eax, [ebp-$08]
004983AD BA02000000 mov edx, $00000002
* Reference to: System.Proc_00403D7C
|
004983B2 E8C5B9F6FF call 00403D7C
004983B7 C3 ret
* Reference to: System.Proc_00403818
|
004983B8 E95BB4F6FF jmp 00403818
004983BD EBE3 jmp 004983A2
****** END
|
004983BF 8BC6 mov eax, esi
004983C1 5E pop esi
004983C2 5B pop ebx
004983C3 8BE5 mov esp, ebp
004983C5 5D pop ebp
004983C6 C3 ret
經過以上分析,我想對程式的註冊演算法應該差不多都清楚了,下面在總結
一下:先是把第一部分和第二部分連線起來,判斷總的個數是否為10個,考慮
到後面要依靠到第二部分的3個數字,第一部分就應該是7位,而第二部分應該
是3位,好了,完了以後,程式將會取出第一部分的1,4,7位的數值,儲存到全域性
變數中去!接著取出第二部分的每個字元,轉換成10近制的值,即'3'=34H,轉
換為4,然後儲存,接著是用第一部分的第1個數字除以第二部分的的第1個數字如果餘數為3則成功,接著比較第二關鍵部分,同理第一部分的第4個字元除以第二部分的第2個字元,看餘數是否為3,接著比較第三關鍵部分,這回是把第一部分的第7為的值除以第糠值牡?個字元的值,餘數為2則成功!而第一部分的其他2,3,5,6位則任意,註冊碼第三部分則任意!
註冊碼為如下形式:
3xx3xx2-yyz-mmmn ;x為任意,y為大於3的整數,z為大於2的整數,第三部分任意
7xx7xx5-443-mmmn
9xx9xx5-663-mmmn
9xx9xx9-667-mmmn
當第一部分的第1,4位為7,9時,第二部分的前兩位4,6,而第一部分的第7位
和第二部分的第3位,則可以是2,z(z>2)或者5,3或者7,5或者9,7的組合,
這樣都可以註冊成功,這樣註冊碼太多了!
我又試了一下第一部分第7位,除以第二部分第3位餘數為3的情況,也註冊
成功了,例如:
7xx7xx7-444-mmmn
這是程式上沒有反映出來的,不知道為什麼?也懶得跟了,這麼多註冊碼
夠我們用的了!
Made By dengkeng
E-mail:shellc0de@sohu.com
歡迎轉載,請保持文章的完整性
相關文章
- ShadowDefender 註冊碼 分析2024-08-17
- nacos註冊中心原始碼流程分析2020-12-23原始碼
- containerd 原始碼分析:啟動註冊流程2024-05-21AI原始碼
- Netty原始碼分析--Channel註冊(中)(六)2019-07-02Netty原始碼
- Netty原始碼分析--Channel註冊(上)(五)2019-07-02Netty原始碼
- @angular/router 原始碼分析之註冊路由2018-07-10Angular原始碼路由
- 【Java】NIO中Channel的註冊原始碼分析2019-05-17Java原始碼
- Nacos(一)原始碼分析Nacos註冊示例流程2020-12-26原始碼
- PhpStorm註冊碼2020-04-07PHPORM
- VMware註冊碼2018-10-18
- Viscosity for Mac 註冊碼:2019-09-19Mac
- Navicat for MySQL註冊碼2020-04-07MySql
- 原始碼分析 SpringCloud 2020.0.4 版本 EurekaClient 的註冊過程2021-12-29原始碼SpringGCCloudclient
- Netty原始碼分析--Channel註冊&繫結埠(下)(七)2019-07-04Netty原始碼
- spring-IOC容器原始碼分析(二)BeanDefinition註冊流程2018-11-19Spring原始碼Bean
- Element theme-chalk 分析2018-09-07
- EmEditor 24.4.1 離線註冊分析2024-11-09
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊2019-03-03原始碼
- Nacos(二)原始碼分析Nacos服務端註冊示例流程2021-01-18原始碼服務端
- Kubernetes1.5原始碼分析(二) apiServer之資源註冊2019-02-16原始碼APIServer
- Laravel-admin 原始碼分析系列 1——註冊服務與安裝分析2019-08-03Laravel原始碼
- wing ftp server 註冊碼2020-11-23FTPServer
- phpstrom 註冊碼獲取2018-05-23PHP
- PLSQL Developer 12 註冊碼2018-06-07SQLDeveloper
- sublime text for Mac註冊啟用 sublime text4註冊碼2023-10-11Mac
- Dubbo 中 Zookeeper 註冊中心原理分析2023-02-02
- 需求分析案例 - “自動註冊”功能2020-11-02
- 【原始碼分析】XXL-JOB的執行器的註冊流程2023-04-22原始碼
- SpringCloud元件 & 原始碼剖析:Eureka服務註冊方式流程全面分析2019-03-04SpringGCCloud元件原始碼
- Fabric 1.0原始碼分析(45)gRPC(Fabric中註冊的gRPC Service)2018-05-21原始碼RPC
- 今天好多人 phpstrom 編譯器註冊碼失效了,最新可用註冊碼2019-12-24PHP編譯
- JProfiler v14.0.0註冊碼2023-10-12
- datagrip 2021.1啟用註冊碼2021-04-22
- IntelliJ IDEA 註冊碼啟用2018-08-07IntelliJIdea
- Navicat for MySQL 11註冊碼\啟用碼2019-02-11MySql
- springcloud/springboot整合NACOS 做註冊和配置中心以及nacos原始碼分析2023-10-30GCCloudSpring Boot原始碼
- 原始碼分析 — Activity的清單註冊校驗及動態注入2018-03-20原始碼
- AllenExplorer v6.8 離線註冊分析2024-12-07
- Prism 10 for Mac 附註冊碼 強大的資料分析能力 統計分析繪圖2024-01-08Mac繪圖