📄 tstril.asm
字号:
; 193 : wsprintf(szString, L"SMS Message Notification:");
ldr r1, [pc, #0x44] ; pc+8+68 = 00000A88
add r0, sp, #4
bl wsprintfW ; 00000A4C
; 194 : SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
add r3, sp, #4
mov r2, #0
mov r1, #6, 26 ; 0x180 = 384
ldr r0, [pc, #-0x28] ; pc+8-40 = 00000A34
ldr r0, [r0]
bl SendMessageW ; 00000A64
; 195 :
; 196 : switch (dwCode & 0xff) {
ldr lr, [sp, #0x218] ; 0x218 = 536
and r3, lr, #0xFF ; 0xFF = 255
str r3, [sp, #0x20C] ; 0x20C = 524
ldr r2, [sp, #0x20C] ; 0x20C = 524
cmp r2, #1
beq |$L27330| ; 00000A8C
ldr r1, [sp, #0x20C] ; 0x20C = 524
cmp r1, #3
beq |$L27335| ; 00000AC8
b |$L27327| ; 00000AFC
|$L27523|
DCD |$SG27324|
|$L27330|
; 197 : case RIL_NOTIFY_MESSAGE:
; 198 : {
; 199 : RILMESSAGE *prm = (RILMESSAGE *)lpData;
ldr r0, [sp, #0x21C] ; 0x21C = 540
str r0, [sp, #0x204] ; 0x204 = 516
; 200 :
; 201 : wsprintf(szString, L" Incoming message");
ldr r1, [pc, #0x28] ; pc+8+40 = 00000AC4
add r0, sp, #4
bl wsprintfW ; 00000AA4
; 202 : SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
add r3, sp, #4
mov r2, #0
mov r1, #6, 26 ; 0x180 = 384
ldr lr, [pc, #-0x80] ; pc+8-128 = 00000A34
ldr r0, [lr]
bl SendMessageW ; 00000ABC
; 203 : DisplayMessage(prm);
ldr r0, [sp, #0x204] ; 0x204 = 516
bl |?DisplayMessage@@YAXPAURILMESSAGE@@@Z| ; 00000AC4
; 204 : break;
b |$L27327| ; 00000AFC
|$L27524|
DCD |$SG27333|
|$L27335|
; 205 : }
; 206 : case RIL_NOTIFY_STATUSMESSAGE:
; 207 : {
; 208 : RILMESSAGE *prm = (RILMESSAGE *)lpData;
ldr r3, [sp, #0x21C] ; 0x21C = 540
str r3, [sp, #0x208] ; 0x208 = 520
; 209 :
; 210 : wsprintf(szString, L" Incoming status message");
ldr r1, [pc, #0x2C] ; pc+8+44 = 00000B04
add r0, sp, #4
bl wsprintfW ; 00000AE0
; 211 : SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
add r3, sp, #4
mov r2, #0
mov r1, #6, 26 ; 0x180 = 384
ldr r0, [pc, #-0xBC] ; pc+8-188 = 00000A34
ldr r0, [r0]
bl SendMessageW ; 00000AF8
; 212 : DisplayMessage(prm);
ldr r0, [sp, #0x208] ; 0x208 = 520
bl |?DisplayMessage@@YAXPAURILMESSAGE@@@Z| ; 00000B00
|$L27327|
|$L27320|
; 213 : break;
; 214 : }
; 215 : }
; 216 : break;
; 217 : }
; 218 : }
; 219 :
; 220 : }
add sp, sp, #0x21, 28 ; 0x210 = 528
ldmia sp, {sp, pc} ; ldmfd
|$L27525|
DCD |$SG27338|
|$M27520|
ENDP ; |?NotifyCallback@@YAXKPBXKK@Z|, NotifyCallback
EXPORT |?ResultCallback@@YAXKJPBXKK@Z| ; ResultCallback
AREA |.pdata|, PDATA
|$T27529| DCD |?ResultCallback@@YAXKJPBXKK@Z|
DCD 0x40001704
AREA |.data|, DATA
|$SG27348| DCB "r", 0x0, "e", 0x0, "s", 0x0, "u", 0x0, "l", 0x0, "t", 0x0
DCB ":", 0x0, " ", 0x0, "d", 0x0, "w", 0x0, "C", 0x0, "o", 0x0
DCB "d", 0x0, "e", 0x0, "=", 0x0, "%", 0x0, "d", 0x0, ",", 0x0
DCB " ", 0x0, "h", 0x0, "r", 0x0, "C", 0x0, "m", 0x0, "d", 0x0
DCB "I", 0x0, "D", 0x0, "=", 0x0, "%", 0x0, "d", 0x0, " ", 0x0
DCB "l", 0x0, "p", 0x0, "D", 0x0, "a", 0x0, "t", 0x0, "a", 0x0
DCB "=", 0x0, "%", 0x0, "p", 0x0, ",", 0x0, " ", 0x0, "c", 0x0
DCB "b", 0x0, "D", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "=", 0x0
DCB "%", 0x0, "d", 0x0, 0x0, 0x0
AREA |.text|, CODE
|?ResultCallback@@YAXKJPBXKK@Z| PROC ; ResultCallback
; 224 : {
mov r12, sp
stmdb sp!, {r0 - r3} ; stmfd
stmdb sp!, {r12, lr} ; stmfd
sub sp, sp, #0x82, 30 ; 0x208 = 520
|$M27527|
; 225 : TCHAR szString[256];
; 226 :
; 227 : wsprintf(szString, L"result: dwCode=%d, hrCmdID=%d lpData=%p, cbData=%d",dwCode,
; 228 : hrCmdID, lpData, cbData);
ldr r3, [sp, #0x21C] ; 0x21C = 540
str r3, [sp, #4]
ldr r2, [sp, #0x218] ; 0x218 = 536
str r2, [sp]
ldr r3, [sp, #0x214] ; 0x214 = 532
ldr r2, [sp, #0x210] ; 0x210 = 528
ldr r1, [pc, #0x28] ; pc+8+40 = 00000B60
add r0, sp, #8
bl wsprintfW ; 00000B40
; 229 : SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
add r3, sp, #8
mov r2, #0
mov r1, #6, 26 ; 0x180 = 384
ldr r0, [pc, #0xC] ; pc+8+12 = 00000B5C
ldr r0, [r0]
bl SendMessageW ; 00000B58
; 230 : }
add sp, sp, #0x82, 30 ; 0x208 = 520
ldmia sp, {sp, pc} ; ldmfd
|$L27530|
DCD |?g_hwndEdit@@3PAUHWND__@@A|
DCD |$SG27348|
|$M27528|
ENDP ; |?ResultCallback@@YAXKJPBXKK@Z|, ResultCallback
EXPORT |?DoRIL@@YAKPAX@Z| ; DoRIL
IMPORT |RIL_Initialize|
IMPORT |Sleep|
AREA |.pdata|, PDATA
|$T27534| DCD |?DoRIL@@YAKPAX@Z|
DCD 0x40003a04
AREA |.data|, DATA
% 2
|$SG27357| DCB "R", 0x0, "I", 0x0, "L", 0x0, " ", 0x0, "H", 0x0, "a", 0x0
DCB "n", 0x0, "d", 0x0, "l", 0x0, "e", 0x0, ":", 0x0, " ", 0x0
DCB "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, ",", 0x0, " ", 0x0
DCB "r", 0x0, "e", 0x0, "s", 0x0, "u", 0x0, "l", 0x0, "t", 0x0
DCB " ", 0x0, "%", 0x0, "0", 0x0, "8", 0x0, "X", 0x0, 0x0, 0x0
AREA |.text|, CODE
|?DoRIL@@YAKPAX@Z| PROC ; DoRIL
; 235 : {
mov r12, sp
stmdb sp!, {r0} ; stmfd
stmdb sp!, {r12, lr} ; stmfd
sub sp, sp, #0x86, 30 ; 0x218 = 536
|$M27532|
; 236 : HRESULT result;
; 237 : DWORD dwNotificationClasses = 0xFF0000;
mov r3, #0xFF, 16 ; 0xFF0000 = 16711680
str r3, [sp, #0x10] ; 0x10 = 16
; 238 : LRESULT lresult;
; 239 : TCHAR szString[256];
; 240 :
; 241 : SendMessage(g_hwndEdit, LB_RESETCONTENT, 0, 0);
mov r3, #0
mov r2, #0
mov r1, #0x61, 30 ; 0x184 = 388
ldr r0, [pc, #0xA4] ; pc+8+164 = 00000C34
ldr r0, [r0]
bl SendMessageW ; 00000B98
; 242 : lresult = SendMessage(g_hwndEdit, LB_GETHORIZONTALEXTENT, 0, 0);
mov r3, #0
mov r2, #0
mov lr, #0x19, 28 ; 0x190 = 400
orr r1, lr, #3
ldr r0, [pc, #0x88] ; pc+8+136 = 00000C34
ldr r0, [r0]
bl SendMessageW ; 00000BB4
str r0, [sp, #0xC] ; 0xC = 12
; 243 : SendMessage(g_hwndEdit, LB_SETHORIZONTALEXTENT, 1000, 0);
mov r3, #0
mov r2, #0xFA, 30 ; 0x3E8 = 1000
mov r1, #0x65, 30 ; 0x194 = 404
ldr lr, [pc, #0x6C] ; pc+8+108 = 00000C34
ldr r0, [lr]
bl SendMessageW ; 00000BD0
; 244 :
; 245 : result = RIL_Initialize(1, ResultCallback, NotifyCallback,
; 246 : dwNotificationClasses, g_dwParam, &g_hRil);
ldr r3, [pc, #0x68] ; pc+8+104 = 00000C3C
str r3, [sp, #4]
ldr r2, [pc, #0x6C] ; pc+8+108 = 00000C48
ldr r1, [r2]
str r1, [sp]
ldr r3, [sp, #0x10] ; 0x10 = 16
ldr r2, [pc, #0x58] ; pc+8+88 = 00000C44
ldr r1, [pc, #0x50] ; pc+8+80 = 00000C40
mov r0, #1
bl RIL_Initialize ; 00000BF8
str r0, [sp, #8]
; 247 :
; 248 : wsprintf(szString, L"RIL Handle: %08X, result %08X", g_hRil, result);
ldr r3, [sp, #8]
ldr r0, [pc, #0x38] ; pc+8+56 = 00000C3C
ldr r2, [r0]
ldr r1, [pc, #0x2C] ; pc+8+44 = 00000C38
add r0, sp, #0x18 ; 0x18 = 24
bl wsprintfW ; 00000C14
; 249 : SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
add r3, sp, #0x18 ; 0x18 = 24
mov r2, #0
mov r1, #6, 26 ; 0x180 = 384
ldr lr, [pc, #0x10] ; pc+8+16 = 00000C34
ldr r0, [lr]
bl SendMessageW ; 00000C2C
|$L27360|
; 250 :
; 251 : while(1) {
; 252 : Sleep(100);
mov r0, #0x64 ; 0x64 = 100
bl Sleep ; 00000C34
; 253 : // wsprintf(szString, L"%s",L"...");
; 254 : // SendMessage(g_hwndEdit, LB_ADDSTRING, 0, (LPARAM) szString);
; 255 : }
b |$L27360| ; 00000C28
|$L27535|
DCD |?g_hwndEdit@@3PAUHWND__@@A|
DCD |$SG27357|
DCD |?g_hRil@@3KA|
DCD |?ResultCallback@@YAXKJPBXKK@Z|
DCD |?NotifyCallback@@YAXKPBXKK@Z|
DCD |?g_dwParam@@3KA|
|$M27533|
ENDP ; |?DoRIL@@YAKPAX@Z|, DoRIL
EXPORT |?InitInstance@@YAHPAUHINSTANCE__@@H@Z| ; InitInstance
EXPORT |WinMain|
IMPORT |GetMessageW|
IMPORT |TranslateMessage|
IMPORT |DispatchMessageW|
IMPORT |LoadAcceleratorsW|
IMPORT |TranslateAcceleratorW|
AREA |.pdata|, PDATA
|$T27539| DCD |WinMain|
DCD 0x40002404
AREA |.text|, CODE
|WinMain| PROC
; 265 : {
mov r12, sp
stmdb sp!, {r0 - r3} ; stmfd
stmdb sp!, {r12, lr} ; stmfd
sub sp, sp, #0x20 ; 0x20 = 32
|$M27537|
; 266 : MSG msg;
; 267 : HACCEL hAccelTable;
; 268 :
; 269 : // Perform application initialization:
; 270 : if (!InitInstance (hInstance, nCmdShow))
ldr r1, [sp, #0x34] ; 0x34 = 52
ldr r0, [sp, #0x28] ; 0x28 = 40
bl |?InitInstance@@YAHPAUHINSTANCE__@@H@Z| ; 00000C6C
movs r3, r0
bne |$L27370| ; 00000C78
; 271 : {
; 272 : return FALSE;
mov r0, #0
b |$L27367| ; 00000CD4
|$L27370|
; 273 : }
; 274 :
; 275 : hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_TSTRIL);
mov r1, #3
ldr r0, [sp, #0x28] ; 0x28 = 40
bl LoadAcceleratorsW ; 00000C88
str r0, [sp, #0x1C] ; 0x1C = 28
|$L27373|
; 276 :
; 277 : // Main message loop:
; 278 : while (GetMessage(&msg, NULL, 0, 0))
mov r3, #0
mov r2, #0
mov r1, #0
add r0, sp, #0
bl GetMessageW ; 00000CA0
movs r2, r0
beq |$L27374| ; 00000CD0
; 279 : {
; 280 : if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
add r2, sp, #0
ldr r1, [sp, #0x1C] ; 0x1C = 28
ldr r0, [sp]
bl TranslateAcceleratorW ; 00000CB8
movs r1, r0
bne |$L27375| ; 00000CCC
; 281 : {
; 282 : TranslateMessage(&msg);
add r0, sp, #0
bl TranslateMessage ; 00000CC8
; 283 : DispatchMessage(&msg);
add r0, sp, #0
bl DispatchMessageW ; 00000CD0
|$L27375|
; 284 : }
; 285 : }
b |$L27373| ; 00000C88
|$L27374|
; 286 :
; 287 : return msg.wParam;
ldr r0, [sp, #8]
|$L27367|
; 288 : }
add sp, sp, #0x20 ; 0x20 = 32
ldmia sp, {sp, pc} ; ldmfd
|$M27538|
ENDP ; |WinMain|
EXPORT |?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z| ; MyRegisterClass
EXPORT |?WndProc@@YAJPAUHWND__@@IIJ@Z| ; WndProc
IMPORT |RegisterClassW|
IMPORT |LoadIconW|
IMPORT |GetStockObject|
AREA |.pdata|, PDATA
|$T27543| DCD |?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z|
DCD 0x40002004
AREA |.text|, CODE
|?MyRegisterClass@@YAGPAUHINSTANCE__@@PAG@Z| PROC ; MyRegisterClass
; 301 : {
mov r12, sp
stmdb sp!, {r0, r1} ; stmfd
stmdb sp!, {r12, lr} ; stmfd
sub sp, sp, #0x28 ; 0x28 = 40
|$M27541|
; 302 : WNDCLASS wc;
; 303 :
; 304 : wc.style = CS_HREDRAW | CS_VREDRAW;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -