160 - 49 DueList.4

環境:
Windows xp sp3

工具:
ollydbg
exeinfope

0x00 查殼

無殼的程序

0x01 分析


運行后隨便輸入點東西,

OD載入:

00401127   > /6A 00         push 0x0                                 ; /lParam = 0
00401129   . |6A 00         push 0x0                                 ; |wParam = 0
0040112B   . |6A 0E         push 0xE                                 ; |Message = WM_GETTEXTLENGTH
0040112D   . |6A 03         push 0x3                                 ; |ControlID = 3
0040112F   . |FF75 08       push dword ptr ss:[ebp+0x8]              ; |hWnd
00401132   . |E8 41020000   call <jmp.&USER32.SendDlgItemMessageA>   ; \SendDlgItemMessageA
00401137   . |A3 AF214000   mov dword ptr ds:[0x4021AF],eax
0040113C   . |83F8 00       cmp eax,0x0                              ;  不能為空
0040113F   . |0F84 D5000000 je DueList_.0040121A
00401145   . |83F8 08       cmp eax,0x8                              ;  大于8個就跳
00401148   . |0F8F CC000000 jg DueList_.0040121A
0040114E   . |8BF0          mov esi,eax
00401150   . |6A 00         push 0x0                                 ; /lParam = 0
00401152   . |6A 00         push 0x0                                 ; |wParam = 0
00401154   . |6A 0E         push 0xE                                 ; |Message = WM_GETTEXTLENGTH
00401156   . |6A 04         push 0x4                                 ; |ControlID = 4
00401158   . |FF75 08       push dword ptr ss:[ebp+0x8]              ; |hWnd
0040115B   . |E8 18020000   call <jmp.&USER32.SendDlgItemMessageA>   ; \SendDlgItemMessageA
00401160   . |83F8 00       cmp eax,0x0
00401163   . |0F84 B1000000 je DueList_.0040121A
00401169   . |3BF0          cmp esi,eax
0040116B   . |0F85 A9000000 jnz DueList_.0040121A                    ;  serial與name的長度不同就跳
00401171   . |68 60214000   push DueList_.00402160                   ; /lParam = 402160
00401176   . |6A 08         push 0x8                                 ; |wParam = 8
00401178   . |6A 0D         push 0xD                                 ; |Message = WM_GETTEXT
0040117A   . |6A 03         push 0x3                                 ; |ControlID = 3
0040117C   . |FF75 08       push dword ptr ss:[ebp+0x8]              ; |hWnd
0040117F   . |E8 F4010000   call <jmp.&USER32.SendDlgItemMessageA>   ; \SendDlgItemMessageA
00401184   . |68 79214000   push DueList_.00402179                   ; /lParam = 402179
00401189   . |6A 10         push 0x10                                ; |wParam = 10
0040118B   . |6A 0D         push 0xD                                 ; |Message = WM_GETTEXT
0040118D   . |6A 04         push 0x4                                 ; |ControlID = 4
0040118F   . |FF75 08       push dword ptr ss:[ebp+0x8]              ; |hWnd
00401192   . |E8 E1010000   call <jmp.&USER32.SendDlgItemMessageA>   ; \SendDlgItemMessageA
00401197   . |B9 FFFFFFFF   mov ecx,-0x1
0040119C   > |41            inc ecx
0040119D   . |0FBE81 602140>movsx eax,byte ptr ds:[ecx+0x402160]
004011A4   . |83F8 00       cmp eax,0x0                              ;  Switch (cases 0..7A)
004011A7   . |74 32         je XDueList_.004011DB
004011A9   . |BE FFFFFFFF   mov esi,-0x1
004011AE   . |83F8 41       cmp eax,0x41
004011B1   . |7C 67         jl XDueList_.0040121A                    ;  小于0x41的直接錯誤
004011B3   . |83F8 7A       cmp eax,0x7A
004011B6   . |77 62         ja XDueList_.0040121A                    ;  大于0x7a的就直接錯誤
004011B8   . |83F8 5A       cmp eax,0x5A
004011BB   . |7C 03         jl XDueList_.004011C0
004011BD   . |83E8 20       sub eax,0x20                             ;  Cases 5A ('Z'),5B ('['),5C ('\'),5D (']'),5E ('^'),5F ('_'),60 ('`'),61 ('a'),62 ('b'),63 ('c'),64 ('d'),65 ('e'),66 ('f'),67 ('g'),68 ('h'),69 ('i'),6A ('j'),6B ('k'),6C ('l'),6D ('m')... of switch 004011A4
004011C0   > |46            inc esi                                  ;  Cases 41 ('A'),42 ('B'),43 ('C'),44 ('D'),45 ('E'),46 ('F'),47 ('G'),48 ('H'),49 ('I'),4A ('J'),4B ('K'),4C ('L'),4D ('M'),4E ('N'),4F ('O'),50 ('P'),51 ('Q'),52 ('R'),53 ('S'),54 ('T')... of switch 004011A4
004011C1   . |0FBE96 172040>movsx edx,byte ptr ds:[esi+0x402017]     ;  找到相同的值
004011C8   . |3BC2          cmp eax,edx
004011CA   .^|75 F4         jnz XDueList_.004011C0
004011CC     |0FBE86 3C2040>movsx eax,byte ptr ds:[esi+0x40203C]     ;  在另一個字符串中找到對應位置的值
004011D3   . |8981 94214000 mov dword ptr ds:[ecx+0x402194],eax      ;  這里就是正確的serial
004011D9   .^|EB C1         jmp XDueList_.0040119C
004011DB   > |FF35 AF214000 push dword ptr ds:[0x4021AF]             ;  Case 0 of switch 004011A4
004011E1   . |68 94214000   push DueList_.00402194
004011E6   . |68 79214000   push DueList_.00402179
004011EB   . |E8 54000000   call DueList_.00401244                   ;  比較
004011F0   . |83F8 01       cmp eax,0x1
004011F3   .^|0F84 DEFEFFFF je DueList_.004010D7

搜一下錯誤信息的字符串,往上翻一翻就有了。下個斷點觀察一下,不難看出這里就是算法了。

0x02 算法分析

這個算法也是比較簡單的,將輸入的內容轉為大寫字母,與:

A1LSK2DJF4HGP3QWO5EIR6UTYZ8MXN7CBV9

比較,找到相同字符的位置,然后再從:

SU7CSJKF09NCSDO9SDF09SDRLVK7809S4NF

找到對應位置的字符,就是所求的serial

存在一個問題就是如果輸入的內容在a(0x61)和Z(0x5A)之間的話,程序會錯誤,因為在上面的字符串中找不到對應的字符,所以會沒有正確的serial

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376350.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376350.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java中的codereview

&#xfeff;&#xfeff;關于codereview&#xff0c;在平時的開發中&#xff0c;經常忽略的環節&#xff0c;參照目前介紹寫好代碼的幾本書和之前掉進的坑&#xff0c;做了一個總結&#xff0c;分享出來。 為什么要做 通過review規避一些代碼層面的問題提升可讀性&#xff0c;…

linux下開機啟動腳本的方法

1.準備好要隨機啟動的程序&#xff0c;例如 /root/test.sh 。確保其可執行。 2.在目錄 /etc/init.d/ 下編寫控制腳本 test 。 #!/bin/sh ### BEGIN INIT INFO # Provides: test # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: …

理解i-node

原文鏈接:http://www.ruanyifeng.com/blog/2011/12/inode.html 感覺講得挺好,便做個記錄.轉載于:https://www.cnblogs.com/malware/p/3377616.html

MD5算法詳解

0x00 前言 MD5是一種哈希算法&#xff0c;用來保證信息的完整性。 就一段信息對應一個哈希值&#xff0c;且不能通過哈希值推出這段信息&#xff0c;而且還需要保證不存在任意兩段不相同的信息對應同一個哈希值。不過MD5算法算出來的值也就16個字節&#xff08;16*8128&#x…

我的2015年讀書計劃,每兩周讀完一本書!

近日看到一篇文章&#xff0c;說Facebook CEO 馬克扎克伯格給自己的2015年定下了一個新的挑戰&#xff0c;每兩周就要讀完一本書&#xff08;傳送門&#xff1a;戳這里&#xff09;。想了一下&#xff0c;我自己也很久沒看書了&#xff0c;所以今年要改變一下&#xff0c;給自己…

書到用時方恨少

以前覺得的自己的英語還行&#xff0c;四級&#xff0c;六級的什么早就在讀書的時候過了&#xff0c; 工作以后&#xff0c;陸陸續續也一直用著英語。 最近發現和老外私下聊天的時候&#xff0c;詞匯量嚴重不足。不明白老外在說什么&#xff0c;一起跟著傻笑。 活到老&#xff…

kettle7.1 右上角不顯示connect

kettle7.1右上角不顯示connect&#xff0c;就無法使用資源庫了。 總結一下解決方法&#xff1a; 1.可能是jdk版本不對&#xff0c;最好使用1.8。原本是10.1&#xff0c;不顯示connect&#xff0c;后來裝了個1.8后就能顯示了。記得是要改環境&#xff0c;javac -version 能顯示…

基于XMPP協議的aSmack源碼分析

在研究如何實現Pushing功能期間&#xff0c;收集了很多關于Pushing的資料&#xff0c;其中有一個androidnp開源項目用的人比較多&#xff0c;但是由于長時間沒有什么人去維護&#xff0c;聽說bug的幾率挺多的&#xff0c;為了以后自己的產品穩定些&#xff0c;所以就打算自己研…

[Reverse] - 百度杯”CTF比賽 2017 二月場-CrackMe-1

環境&#xff1a;Windows XP 工具&#xff1a; IDA OD EXEINFOPE 0x00 查殼 0x01 分析 拖入OD&#xff0c;字符串查找看一看。 跟進去看就可以知道關鍵call了 0040196A . 48 dec eax 0040196B . 0F85 C4000000 jnz CrackMe1.00401A35 00401971 . …

【DeepLearning】Exercise:Learning color features with Sparse Autoencoders

Exercise:Learning color features with Sparse Autoencoders 習題鏈接&#xff1a;Exercise:Learning color features with Sparse Autoencoders sparseAutoencoderLinearCost.m function [cost,grad,features] sparseAutoencoderLinearCost(theta, visibleSize, hiddenSize,…

win7 64位系統下 PL/SQL無法連接的問題

第一步&#xff1a;下載oracle客戶端 由于 PLSQL Developer 沒有64位版本&#xff0c;所以在64位系統上運行該程鏈接64位Oracle時就會報錯&#xff0c;筆者為這個問題糾結了好幾天&#xff0c;后來通過請教Google 動手實踐&#xff0c;終于搞定了這個問題。現在把筆者解決的過…

SQL2008R2 express版本不支持維護計劃

SQL2008R2 express版本不支持維護計劃轉載于:https://www.cnblogs.com/toSeeMyDream/p/4218626.html

SHA1算法詳解

0x00 前言 SHA1算法也是哈希算法的一種&#xff0c;只要理解了MD5算法&#xff0c;SHA1也很快就能理解。 MD5算法可以參考&#xff1a;MD5算法詳解 MD5算法得出的MD5值長度為16個字節&#xff08;8*16128位&#xff09; SHA1算法得出的SHA1值長度為20個字節&#xff08;8*2…

HTML5 地理位置定位(HTML5 Geolocation)

地理位置&#xff08;Geolocation&#xff09;是 HTML5 的重要特性之一&#xff0c;提供了確定用戶位置的功能&#xff0c;借助這個特性能夠開發基于位置信息的應用。今天這篇文章向大家介紹一下HTML5 地理位置定位的基本原理及各個瀏覽器的數據精度情況。 在訪問位置信息前&a…

2016騰訊安全挑戰賽第一輪-PC游戲方向

0x00 查殼 無殼的VC程序 0x01 測試 沒有消息彈窗&#xff0c;嘗試對函數下斷點。 OD載入后&#xff0c;CtrlN查找函數&#xff0c;找到GetDlgItem 程序運行起來&#xff0c;等輸入完后點擊確定后程序斷下。一路F8就來到這里 00401EED . E8 6A5B0000 call Tenc…

49-今日交易總結.(2015.1.13)

49-今日交易總結今天交易情況不好&#xff0c;主要犯了虧損時還連續加倉的錯誤。作為一個交易者&#xff0c;虧損時&#xff0c;繼續加倉&#xff0c;認為市場會向交易的方向變化&#xff0c;一次性把虧損的全部撈回來&#xff0c;還能賺一筆。這是一種賭徒心理。永遠不要再虧損…

電商導購過冬:蘑菇街醞釀出售 美麗說轉型時尚

一度紅火的第三方導購網站正因為阿里巴巴過山車式的態度而呈現出急劇下滑的軌跡。 2011年&#xff0c;以美麗說、蘑菇街為代表的導購網站蜂擁而起。彼時&#xff0c;兩者還能頻繁出現在阿里巴巴的官方活動中。然而&#xff0c;2012年5月&#xff0c;阿里巴巴集團董事局主席馬云…

JavascriptDOM(三)

簡介 今天學習第二天的知識,js和BOM對象,再接再厲,fighting~學習原則 腳踏實地的走好每一步,要想學好高級部分,基礎知識必須扎實呀 掌握基本語法,完成小案例,寫博客作總結,基本就是這個節奏,下面我們一起快速入門吧JavaScript快速入門 1. js簡介 1.js基于對象和事件驅動的腳本語…

看雪 2016CrackMe 攻防大賽 - 1-Crack_Me-涼颼颼

環境&#xff1a; Windows xp 工具&#xff1a; IDA EXEINFOPE OD 0x00 查殼 EXEINFOPE查殼&#xff0c; 無殼 0x01 分析 if ( (unsigned __int16)wParam 0x40B ) // 成功{*(_OWORD *)v22 xmmword_41DB98;v25 0;v23 xmmword_41DBA8;v24 xmmword_41DBB8;memset_4039D0…

JS 或css教程 識別 IE版本的幾種方法

今天收藏了這幾種關于識別ie版本的幾種代碼&#xff0c;有需要的朋友參考一下&#xff1a;var isIE!!window.ActiveXObject;var isIE6isIE&&!window.XMLHttpRequest;var isIE8isIE&&!!document.documentMode;var isIE7isIE&&!isIE6&&!isIE8;if…