能力值:
( LV3,RANK:20 )
|
-
-
2 楼
data:00403023 ; char Serial[10]
.data:00403023 ?? ?? ?? ?? ?? ??+Serial db 0Ah dup(?) ; DATA XREF: sub_401000+2o
.data:00403023 ?? ?? ?? ?? ; sub_401000+1Do
.data:00403023 ; DialogFunc+6Co
.data:0040302D ?? unk_40302D db ? ; ; DATA XREF: sub_401000+2Co
PS:借助 serial 做溢出,就好啦.....
|
能力值:
( LV13,RANK:388 )
|
-
-
4 楼
果然是16位,debug调试太蛋疼了,ida反解码出来的也不好看,下午再说吧
seg000:0041 mov ax, cs seg000:0043 mov ds, ax seg000:0045 assume ds:seg000 seg000:0045 mov dx, 2Dh ; '-' seg000:0048 mov ah, 9 seg000:004A int 21h ; DOS - PRINT STRING seg000:004A ; DS:DX -> string terminated by "$" seg000:004C mov ax, cs seg000:004E mov ds, ax seg000:0050 mov dx, 203h seg000:0053 mov ah, 0Ah seg000:0055 int 21h ; DOS - BUFFERED KEYBOARD INPUT seg000:0055 ; DS:DX -> buffer seg000:0057 mov dl, 0Ah seg000:0059 mov ah, 2 seg000:005B int 21h ; DOS - DISPLAY OUTPUT seg000:005B ; DL = character to send to standard output seg000:005D mov ax, cs seg000:005F mov ds, ax seg000:0061 mov dx, 37h ; '7' seg000:0064 mov ah, 9 seg000:0066 int 21h ; DOS - PRINT STRING seg000:0066 ; DS:DX -> string terminated by "$" seg000:0068 mov ax, cs seg000:006A mov ds, ax seg000:006C mov dx, 219h seg000:006F mov ah, 0Ah seg000:0071 int 21h ; DOS - BUFFERED KEYBOARD INPUT seg000:0071 ; DS:DX -> buffer seg000:0073 mov dl, 0Ah seg000:0075 mov ah, 2 seg000:0077 int 21h ; DOS - DISPLAY OUTPUT seg000:0077 ; DL = character to send to standard output seg000:0079 xor ax, ax seg000:007B mov dx, 204h seg000:007E mov bx, dx seg000:0080 mov al, [bx] seg000:0082 cmp ax, 8 seg000:0085 jz short loc_1008A seg000:0087 jmp loc_1019F seg000:008A ; --------------------------------------------------------------------------- seg000:008A seg000:008A loc_1008A: ; CODE XREF: start_0-14Fj seg000:008A xor ax, ax seg000:008C mov dx, 21Ah seg000:008F mov bx, dx seg000:0091 mov al, [bx] seg000:0093 cmp ax, 9 seg000:0096 jz short loc_1009B seg000:0098 jmp loc_1019F seg000:009B ; --------------------------------------------------------------------------- seg000:009B seg000:009B loc_1009B: ; CODE XREF: start_0-13Ej seg000:009B xor ax, ax seg000:009D xor dx, dx seg000:009F xor si, si seg000:00A1 xor cx, cx seg000:00A3 seg000:00A3 loc_100A3: ; CODE XREF: start_0-103j seg000:00A3 mov bx, 21Bh seg000:00A6 mov dl, [bx+si] seg000:00A8 add dx, 30h ; '0' seg000:00AB mov bx, 205h seg000:00AE mov cl, [bx+si] seg000:00B0 sub dx, cx seg000:00B2 sub dx, 41h ; 'A' seg000:00B5 cmp dx, 0Ah seg000:00B8 jnb short loc_100BF seg000:00BA cmp dx, 0 seg000:00BD jnb short loc_100C2 seg000:00BF seg000:00BF loc_100BF: ; CODE XREF: start_0-11Cj seg000:00BF jmp loc_1019F seg000:00C2 ; --------------------------------------------------------------------------- seg000:00C2 seg000:00C2 loc_100C2: ; CODE XREF: start_0-117j seg000:00C2 mov bx, dx seg000:00C4 mov cx, 0Ah seg000:00C7 imul cx seg000:00C9 add ax, bx seg000:00CB inc si seg000:00CC cmp si, 3 seg000:00CF jnb short loc_100D3 seg000:00D1 jmp short loc_100A3 seg000:00D3 ; --------------------------------------------------------------------------- seg000:00D3 seg000:00D3 loc_100D3: ; CODE XREF: start_0-105j seg000:00D3 mov cs:S123, ax seg000:00D7 xor ax, ax seg000:00D9 xor dx, dx seg000:00DB xor si, si seg000:00DD xor cx, cx seg000:00DF seg000:00DF loc_100DF: ; CODE XREF: start_0-C7j seg000:00DF mov bx, 21Eh seg000:00E2 mov dl, [bx+si] seg000:00E4 add dx, 30h ; '0' seg000:00E7 mov bx, 208h seg000:00EA mov cl, [bx+si] seg000:00EC sub dx, cx seg000:00EE sub dx, 41h ; 'A' seg000:00F1 cmp dx, 0Ah seg000:00F4 jnb short loc_100FB seg000:00F6 cmp dx, 0 seg000:00F9 jnb short loc_100FE seg000:00FB seg000:00FB loc_100FB: ; CODE XREF: start_0-E0j seg000:00FB jmp loc_1019F seg000:00FE ; --------------------------------------------------------------------------- seg000:00FE seg000:00FE loc_100FE: ; CODE XREF: start_0-DBj seg000:00FE mov bx, dx seg000:0100 mov cx, 0Ah seg000:0103 imul cx seg000:0105 add ax, bx seg000:0107 inc si seg000:0108 cmp si, 3 seg000:010B jnb short loc_1010F seg000:010D jmp short loc_100DF seg000:010F ; --------------------------------------------------------------------------- seg000:010F seg000:010F loc_1010F: ; CODE XREF: start_0-C9j seg000:010F mov cs:S456, ax seg000:0113 xor ax, ax seg000:0115 xor dx, dx seg000:0117 xor si, si seg000:0119 xor cx, cx seg000:011B seg000:011B loc_1011B: ; CODE XREF: start_0-8Cj seg000:011B mov bx, 221h seg000:011E mov dl, [bx+si] seg000:0120 add dx, 30h ; '0' seg000:0123 mov bx, 20Bh seg000:0126 mov cl, [bx+si] seg000:0128 sub dx, cx seg000:012A sub dx, 61h ; 'a' seg000:012D cmp dx, 0Ah seg000:0130 jnb short loc_10137 seg000:0132 cmp dx, 0 seg000:0135 jnb short loc_10139 seg000:0137 seg000:0137 loc_10137: ; CODE XREF: start_0-A4j seg000:0137 jmp short loc_1019F seg000:0139 ; --------------------------------------------------------------------------- seg000:0139 seg000:0139 loc_10139: ; CODE XREF: start_0-9Fj seg000:0139 mov bx, dx seg000:013B mov cx, 0Ah seg000:013E imul cx seg000:0140 add ax, bx seg000:0142 inc si seg000:0143 cmp si, 3 seg000:0146 jnb short loc_1014A seg000:0148 jmp short loc_1011B seg000:014A ; --------------------------------------------------------------------------- seg000:014A seg000:014A loc_1014A: ; CODE XREF: start_0-8Ej seg000:014A dec ax seg000:014B dec ax seg000:014C mov cs:word_101FF, ax seg000:0150 mov ax, cs:S123 seg000:0154 mov cx, cs:S456 seg000:0159 mov bx, cs:word_101FF seg000:015E cmp ax, cx seg000:0160 jnb short loc_1016C seg000:0162 cmp cx, bx seg000:0164 jnb short loc_1016C seg000:0166 imul cx seg000:0168 imul bx seg000:016A jmp short loc_1016E seg000:016C ; --------------------------------------------------------------------------- seg000:016C seg000:016C loc_1016C: ; CODE XREF: start_0-74j seg000:016C ; start_0-70j seg000:016C jmp short loc_1019F seg000:016E ; --------------------------------------------------------------------------- seg000:016E seg000:016E loc_1016E: ; CODE XREF: start_0-6Aj seg000:016E cmp ax, 2401h seg000:0171 jnz short loc_1019F seg000:0173 cmp dx, 0F4h ; '? seg000:0177 jnz short loc_1019F seg000:0179 mov cs:byte_101F2, 52h ; 'R' seg000:017F mov cs:byte_101F3, 69h ; 'i' seg000:0185 mov cs:byte_101F4, 67h ; 'g' seg000:018B mov cs:byte_101F5, 68h ; 'h' seg000:0191 mov cs:byte_101F6, 74h ; 't' seg000:0197 mov cs:byte_101F7, 21h ; '!' seg000:019D jmp short loc_101C3 seg000:019F ; --------------------------------------------------------------------------- seg000:019F seg000:019F loc_1019F: ; CODE XREF: start_0-14Dj seg000:019F ; start_0-13Cj ... seg000:019F mov cs:byte_101F2, 57h ; 'W' seg000:01A5 mov cs:byte_101F3, 72h ; 'r' seg000:01AB mov cs:byte_101F4, 6Fh ; 'o' seg000:01B1 mov cs:byte_101F5, 6Eh ; 'n' seg000:01B7 mov cs:byte_101F6, 67h ; 'g' seg000:01BD mov cs:byte_101F7, 21h ; '!' seg000:01C3 seg000:01C3 loc_101C3: ; CODE XREF: start_0-37j seg000:01C3 mov ax, cs seg000:01C5 mov ds, ax seg000:01C7 mov dx, 1F2h seg000:01CA mov ah, 9 seg000:01CC int 21h ; DOS - PRINT STRING seg000:01CC ; DS:DX -> string terminated by "$"
|
能力值:
( LV13,RANK:388 )
|
-
-
6 楼
先说这32位的,name切成两半,都得是2000~2999中间的数字,两半各自的平方加起来,记为x
id再切成两半,前10位转10进制数字,和x异或,记为y,10位以后的用户名逐位减去‘A’的立方再加起来,和记为z
如果y=z则通过,2l将id的前十位全置零就是为了方便计算,穷举很快就能找出很多来
再说这16位的,比较麻烦
id共9位 切成三份,逐位查字母表偏移然后减去用户名(数字),分成三个数字,用户名只有8位,第九位是换行0x0d,这三个数字的积低16位0x2401,高16位为0xf4(dx),也就是16000001,穷举也很快,只有一组109-229-641按这个构造一对就行了
|