Перейти к содержанию

SnedS91

Ветераны
  • Постов

    115
  • Зарегистрирован

  • Посещение

  • Победитель дней

    22

Сообщения, опубликованные SnedS91

  1. Решил дополнить AA-aobscan.

    Теперь, чтобы создать скрипт не нужно выделять код и искать уникальные байты, функция сделает все за нас, достаточно нажать по первой инструкции ПКМ (можно и выделить часть инструкций) и выбрать Create AA-aobscan ^_^

    Вот, собственно, и сама функция:


    function GetScriptAOBSCAN()
    local strSignature = ''
    local result = ''
    local count = -1
    local address = math.min(dv_address1, dv_address2)
    local stop = math.max(dv_address1, dv_address2)
    local length = stop + getInstructionSize(stop) - address

    local countBytes = 0
    repeat
    length = length + countBytes
    stop = stop..'+'..countBytes

    countBytes = getInstructionSize(stop)
    lineDissassemble = disassemble(stop)
    extrafield, opcode, bytes, stop = splitDisassembledString(lineDissassemble)

    if length > 5 then
    strSignature = GetFullSignature(address, length)
    result = AOBScan(strSignature, "+X-C-W")
    else
    result = nil
    end

    if result ~= nil then
    count = strings_getCount(result)
    object_destroy(result)
    end
    until (count == 1)

    local strAddress = getNameFromAddress(address)
    local script = AOBSCANCodeTemplate
    local cheatCode = ""
    local originalCode = ''
    local nops = ''
    local addressReturnHere = 0

    addressReturnHere, originalCode, nops = GetInfoInjection(strAddress)

    script = string.gsub(script,"->>arrayOfbyte", strSignature)
    script = string.gsub(script,"->>cheatCode", cheatCode)
    script = string.gsub(script,"->>originalCode", originalCode)
    local comment = string.format('%08x = %s', address, getNameFromAddress(strAddress))
    script = string.gsub(script,"->>comment", comment) --// 00ADFCFD = GameDLL_x86.dll+50FCFD
    if nops=='' then
    script = string.gsub(script,"->>nops\n", nops) --\r\n
    else
    script = string.gsub(script,"->>nops", nops)
    end

    script = string.gsub(script,"->>NscriptCount", scriptCount)
    return script
    end

    и еще нужно исправить Create AA-aobsan на Create AA-aobscan =)

    • Плюс 1
  2. Баг по создание АА кода с помощью плагина.

    Тока встречается этот баг когда касается командой CMP (Сравнение)


    [ENABLE]
    alloc(newMem, 2048)
    label(returnHere)
    newMem:
    cmp ecx,FCjne 007BE3A0
    jmp returnHere
    cheatengine-i386.exe+3BE394:
    jmp newMem
    returnHere:
    [DISABLE]
    cheatengine-i386.exe+3BE394:
    cmp ecx,FCjne 007BE3A0
    dealloc(newMem)

    А эта обычным путем создание АА скрипта.


    [ENABLE]
    alloc(newmem,2048)
    label(returnhere)
    newmem:
    cmp ecx,FC
    jne cheatengine-i386.exe+3BE3A0

    "cheatengine-i386.exe"+3BE394:
    jmp newmem
    returnhere:
    [DISABLE]
    "cheatengine-i386.exe"+3BE394:
    cmp ecx,FC
    jne cheatengine-i386.exe+3BE3A0
    dealloc(newmem)

    Разница видна? через плагин пишется орг. код cmp ecx,FCjne 007BE3A0.

    Да я тоже заметил такую ошибку, нужно в плагине поменять функцию GetInfoInjection на эту:


    function GetInfoInjection(strAddress) -- return addressReturnHere, originalCodeString, nopsString
    local sumBytes = 0
    local originalCodeString = ""
    local addressReturnHere = strAddress

    local countBytes = 0
    repeat
    countBytes = getInstructionSize(addressReturnHere)
    lineDissassemble = disassemble(addressReturnHere)
    extrafield, opcode, bytes, addressReturnHere = splitDisassembledString(lineDissassemble)

    sumBytes = sumBytes + countBytes
    --addressReturnHere = string.format("%x", ("0x"..addressReturnHere) + countBytes)
    addressReturnHere = addressReturnHere..'+'..countBytes

    if sumBytes >= 5 then
    originalCodeString = originalCodeString..opcode
    else
    originalCodeString = originalCodeString..opcode.."\r\n"
    end
    until (sumBytes >= 5)

    local nopsString = ""
    local nopsCount = sumBytes - 5
    if (nopsCount>0) then
    for i = 1, nopsCount do
    if i == nopsCount then
    nopsString = nopsString.."nop"
    else
    nopsString = nopsString.."nop\r\n"
    end
    end
    end

    return addressReturnHere, originalCodeString, nopsString
    end

    • Плюс 2
  3. Sned, могу предложить попытаться сделать для игры "Sniper: Ghost Warrior, обман кол-ва гранат".

    Долго игру проходить не надо. Идём на тренировочную миссию. Проходим до места, в котром во время игры гранаты появляются на столе, если их там мало.

    Я пытался сделать так, чтобы после броска гранаты в арсенале игрока создавалась новая. А точнее если кол-во гранат меньше максимального, то создать недостающие гранаты. Сделать это у меня не получилось, а потом всё руки не доходили продолжить. Т.к. гранаты появляются на столе автоматически это прекрасно. Мне не приходилось игру проходить и искать эти гранты в каких-то местах игры.

    Хорошо попробую, как скачается :)

  4. Итак, как я сломал hooktest.exe :) :

    Начало обычное, то есть поиск числа патронов. Здесь проще всего найти значение, один раз выстрелив, а потом перезарядить.

    Найдя нужное единственное значение, как обычно, ставим бряк на него (на доступ) и нажимаем перезарядку. Наблюдаем следующее:

    post-8695-0-53217000-1350172282_thumb.jp

    Видим, что с нашим адресом работает 99 раз аж 3 функции! проверим каждую из них:

    post-8695-0-88858900-1350173053_thumb.jppost-8695-0-14183400-1350173129_thumb.jp

    Посмотрев чуть выше первой функции, можно заметить вызов operator delete, что значит здесь идет перебор всех объектов с их удалением, так, значит должен быть и конструктор объектов.

    Следующие две функции как раз входят в структуру, напоминающую конструктор, причем выше можно заметить место где выделяется память, о чем говорит PUSH 00000190 и последующая функция call ebx, которую можно найти, проследив выше по коду что же пишется в ebx, а именно по адресу hooktest.exe+1028 - mov ebx,[hooktest.exe+209C] что это за функция, можно узнать по адресу, содержавшемуся в [hooktest.exe+209C] :

    post-8695-0-36124300-1350174151_thumb.jp функция создания новых объектов!

    А значит в нашем цикле создаются патроны и условием выхода из него, является число 18C (396) Дальше я разделил его на 4 (я всегда так делаю, т.к. такие числа часто встречаются в играх) и получил в результате 99! Значит можно добавить скрипт, меняющий число в условии.


    [ENABLE]
    hooktest.exe+1138:
    cmp edi,00000320
    [DISABLE]
    hooktest.exe+1138:
    cmp edi,0000018C

    Но тут сталкиваемся с неприятностью: при перезарядке программа вылетает! Но все логично: Мы под созданные объекты не выделили память! Значит добавим в скрипт, меняющий значение выделяемой памяти:


    [ENABLE]
    hooktest.exe+10F6:
    push 00000320

    hooktest.exe+1138:
    cmp edi,00000320

    [DISABLE]
    hooktest.exe+10F6:
    push 00000190

    hooktest.exe+1138:
    cmp edi,0000018C

    Теперь, при нажатии перезарядки получаем 200 патронов! Но при нажатии выстрела, получаем 0.

    Дальше я сравнил список функций (бряк на доступ), получаемый при обычном выстреле и список при включенном скрипте:

    post-8695-0-64844800-1350175496_thumb.jppost-8695-0-62585400-1350176735_thumb.jp

    Замечаем, что во втором случае не выполняется inc [esi]. Перейдя в отладчик, натыкаемся на еще одну конструкцию, напоминающую конструктор, и выше замечаем, что опять идет выделение памяти (тоже добавим в скрипт). Условием входа в цикл является 64 (100) вот и ограничение, а значит просто занопим сам прыжок, тогда вход будет всегда!


    [ENABLE]
    hooktest.exe+10F6:
    push 00000320

    hooktest.exe+11CB:
    push 00000320


    hooktest.exe+11F1:
    db 90 90

    hooktest.exe+1138:
    cmp edi,00000320

    [DISABLE]
    hooktest.exe+10F6:
    push 00000190

    hooktest.exe+11CB:
    push 00000190

    hooktest.exe+11F1:
    jg hooktest.exe+1227

    hooktest.exe+1138:
    cmp edi,0000018C

    И ура, товарищи! Патроны адекватно уменьшаются и при перезарядке их 200, осталось сделать их постоянными.

    Для этого посмотрим место, где удаляются объекты:

    post-8695-0-69169200-1350176738_thumb.jp

    Видим рядом с циклом 2 декремента, нам нужен, который снизу, т.к. логичней сначала удалить все объекты, а потом уже уменьшать счетчик =) Допишем наш скрипт:


    [ENABLE]
    //выделение памяти
    hooktest.exe+10F6:
    push 00000320
    hooktest.exe+11CB:
    push 00000320

    //нужное число объектов, умноженное на 4
    hooktest.exe+1138:
    cmp edi,00000320

    //убрать ограничение в 100 объектов
    hooktest.exe+11F1:
    db 90 90

    //отключить уменьшение количества предметов
    hooktest.exe+11B2:
    db 90 90

    [DISABLE]
    hooktest.exe+10F6:
    push 00000190
    hooktest.exe+11CB:
    push 00000190
    hooktest.exe+1138:
    cmp edi,0000018C
    hooktest.exe+11F1:
    jg hooktest.exe+1227
    hooktest.exe+11B2:
    dec [ebx]

    Вот и весь взлом ;) Сложного тут, пожалуй, это анализ кода (например, когда нужно отслеживать как получилось значение какого то регистра), а в принципе тут все просто ^_^

    • Плюс 2
  5. Вдохновился идеей Кодера, накидал легкий трейнми, интересно, как быстро его поломаете )

    Задача

    Сделать 200 патронов и чтобы они не уменьшались, и чтобы после 10 "выстрелов" не вылетала прога ))

    Можно сколько угодно раз делать перезагрузку, кстати, при перезагрузке, количество патронов тоже должно быть равно 200.

    Решается за три минуты, если честно ) Плюс в репу тому, кто первым поломает по условиям задачи, гарантирован.

    hooktest.rar

    вот скрипт ;) (сломал где то за 15 минут):


    [ENABLE]
    //выделение памяти
    hooktest.exe+1045:
    push 00000320
    hooktest.exe+10F6:
    push 00000320
    hooktest.exe+11CB:
    push 00000320

    //нужное число объектов, умноженное на 4
    hooktest.exe+1138:
    cmp edi,00000320

    //убрать ограничение в 100 объектов
    hooktest.exe+11F1:
    db 90 90

    //отключить уменьшение количества предметов
    hooktest.exe+11B2:
    db 90 90

    [DISABLE]
    hooktest.exe+1045:
    push 00000190
    hooktest.exe+10F6:
    push 00000190
    hooktest.exe+11CB:
    push 00000190
    hooktest.exe+1138:
    cmp edi,0000018C
    hooktest.exe+11F1:
    jg hooktest.exe+1227
    hooktest.exe+11B2:
    dec [ebx]

    В дополнение к версии 1.4 Coder'а дописал функцию createObj, теперь звуки будут чередоваться :-D

    (нужно еще объявить метки z1 и z2)


    createObj:
    pushad
    push 20
    call TrainME.exe+16C9
    push 14
    mov ebx,eax
    call TrainME.exe+1730
    xor esi,esi
    add esp,08
    cmp eax,esi
    je m1
    fld dword ptr [TrainME.exe+3178]
    inc byte ptr [eax+04]
    fstp dword ptr [eax+0C]
    mov [eax+08],edi
    mov [eax],TrainME.exe+31A0
    mov ebx,[TrainME.exe+4110]
    test ebx,1
    jpe z1
    mov [eax+10],esi
    jmp z2
    z1:
    mov [eax+10],10
    z2:
    jmp m2
    m1:
    xor eax,eax
    m2:
    lea ecx,[ebp+10]
    push ecx
    mov ecx,TrainME.exe+410C
    mov [ebp+10],eax
    call TrainME.exe+1160
    popad
    dec eax
    cmp eax,0
    jge createObj
    ret

    • Плюс 2
  6. Вот, что нарыл по версии 1.4:

    1) Тут стоит какая то защита на количество объектов: можно создать не более 24 объектов, исправляется скриптом:


    [ENABLE]
    TrainME.exe+147C:
    mov eax,[TrainME.exe+4110]
    nop
    nop

    TrainME.exe+14C9:
    mov edx,[TrainME.exe+4110]
    nop

    TrainME.exe+1502:
    mov edx,[TrainME.exe+4110]
    nop

    [DISABLE]
    TrainME.exe+147C:
    db 8B C2 C1 E8 1F 03 C2

    TrainME.exe+14C9:
    db C1 E9 1F 8D 54 11 FF

    TrainME.exe+1502:
    db C1 E9 1F 8D 54 11 FF

    2) Сам скрипт, создающий 100 объектов:


    [ENABLE]
    alloc(newMem, 512)
    label(exit)
    label(skip)
    label(createObj)
    label(m1)
    label(m2)
    newMem:
    pushfd
    pushad
    push [ebp+10]
    mov eax,[TrainME.exe+4110]
    mov ebx,#100
    sub ebx,eax
    mov eax,ebx
    cmp eax,0
    jl short skip
    call createObj
    skip:
    pop [ebp+10]
    popad
    popfd
    //-----Original-code------
    call TrainME.exe+1730
    //------------------------
    jmp exit
    createObj:
    pushad
    push 20
    call TrainME.exe+16C9
    push 14
    call TrainME.exe+1730
    xor esi,esi
    add esp,08
    cmp eax,esi
    je m1
    fld dword ptr [TrainME.exe+3178]
    inc byte ptr [eax+04]
    fstp dword ptr [eax+0C]
    mov [eax+08],edi
    mov [eax],TrainME.exe+31A0
    mov [eax+10],esi //тип звукового сигнала: esi - дзынь, 10 - ошибка
    jmp m2
    m1:
    xor eax,eax
    m2:
    lea ecx,[ebp+10]
    push ecx
    mov ecx,TrainME.exe+410C
    mov [ebp+10],eax
    call TrainME.exe+1160
    popad
    dec eax
    cmp eax,0
    jge createObj
    ret

    TrainME.exe+1457:
    jmp newMem
    exit:

    [DISABLE]
    TrainME.exe+1457:
    call TrainME.exe+1730
    dealloc(newMem)
    unregistersymbol(address)

  7. А вот это уже действительно правильный взлом.

    Скажу чисто от себя - просто восхитительнейшая работа, и она заслуживает уважение!

    Думаю администрация очень хорошо оценит такой взлом. Моя оценка: 5 из 5 баллов.

    P.S. Идёт работа над версией 1.3

    Спасибо! Трейнми интересный получился (побольше бы таких) ^_^ Жду следующих версий.

  8. Вот рабочий скрипт для 1.2:


    [ENABLE]
    // For Train ME by Coder from SnedS91
    AOBSCAN(aobAddress, A1xxxxxxxx5068xxxxxxxx56FF15xxxxxxxx8B0Dxxxxxxxx83C40C5651 )
    alloc(newMem, 512)
    label(exit)
    label(skip)
    label(address)
    label(createObj)
    label(m1)
    label(m2)
    registersymbol(address)
    newMem:
    pushfd
    pushad
    mov eax,[TrainME.exe+33DC]
    mov ebx,#100
    sub ebx,eax
    mov eax,ebx
    cmp eax,0
    jl short skip
    call createObj
    skip:
    popad
    popfd
    //-----Original-code------
    mov eax,[TrainME.exe+33DC]
    //------------------------
    jmp exit
    createObj:
    pushad
    push 20
    call TrainME.exe+159D
    mov esi,[TrainME.exe+20D4]
    push 0C
    mov [ebp+10],eax
    call esi
    xor ebx,ebx
    add esp,08
    cmp eax,ebx
    je short m1
    mov [eax+08],00000040
    jmp short m2
    m1:
    xor eax,eax
    m2:
    mov [TrainME.exe+33C4],eax
    mov eax,TrainME.exe+33C4
    call TrainME.exe+1440
    popad
    dec eax
    cmp eax,0
    jg short createObj
    ret
    aobAddress:
    address:
    jmp newMem
    exit:
    [DISABLE]
    address:
    mov eax,[TrainME.exe+33DC]
    dealloc(newMem)
    unregistersymbol(address)

    • Плюс 3
  9. небольшую поправку нужно написать, чтоб при ошибке не создавался скрипт:


    function OnItemMenuGenerateAAWithAOBSCANClick(sender)
    local script = GetScriptAOBSCAN()
    if (script ~= nil) then
    local newTableEntry = AddAARecord(script, 'New AOBSCAN-Script ')
    OpenAAEditor(newTableEntry)
    end
    end

    Я хочу дополнить шаблоном для быстрого нопа выделенных функций:


    NopCodeTemplate = [[
    [ENABLE]
    ->>address:
    ->>nops
    [DISABLE]
    ->>address:
    ->>originalCode
    //->>comment
    ]]


    function GetNops(strAddress, length) -- return originalCodeString, originalBytesString, nopsString
    local sumBytes = 0
    local originalCodeString = ""
    local originalBytesString = ""
    local address = strAddress

    local countBytes = 0
    repeat
    countBytes = getInstructionSize(address)
    lineDissassemble = disassemble(address)
    extrafield, opcode, bytes, address = splitDisassembledString(lineDissassemble)

    sumBytes = sumBytes + countBytes
    address = address..'+'..countBytes
    originalCodeString = originalCodeString..opcode.."\r\n"
    originalBytesString = originalBytesString..bytes
    until (sumBytes >= length)
    ---------------nops-----------------
    local nopsString = "db "
    local nopsCount = length
    if (nopsCount>0) then
    for i = 1, nopsCount do
    if i == nopsCount then
    nopsString = nopsString.."90"
    else
    nopsString = nopsString.."90 "
    end
    end
    end

    return originalCodeString, originalBytesString, nopsString
    end


    function GetScriptAANop()
    local script = NopCodeTemplate

    local originalCode = ''
    local originalBytes = ''
    local extra = ''
    local nops = ''

    local address = math.min(dv_address1, dv_address2)
    local stop = math.max(dv_address1, dv_address2)
    local length = stop + getInstructionSize(stop) - address

    local strSignature = GetFullSignature(address, length)
    originalCode, originalBytes, nops = GetNops(address, length)

    local baseAddress = getNameFromAddress(address)
    script = string.gsub(script,"->>address", baseAddress)
    script = string.gsub(script,"->>originalCode", originalCode)
    script = string.gsub(script,"->>comment", originalBytes)
    script = string.gsub(script,"->>nops", nops)
    script = string.gsub(script,"->>NscriptCount", scriptCount)
    return script
    end


    function OnItemMenuGenerateAANopClick(sender)
    local script = GetScriptAANop()
    local newTableEntry = AddAARecord(script,'New Script')
    OpenAAEditor(newTableEntry)
    end


    AddItemMenuInMemoryViewForm('* Create AA NOP', 'Ctrl+Shift+N', OnItemMenuGenerateAANopClick, OnSelectionTracker)

    • Плюс 2
  10. Спасибо. Немножко дополню, хорошо?

    Перед установкой вышеописанной програмки, почитайте faq к ней. что делает и на каких девайсах.

    http://code.google.c...tether/wiki/FAQ

    Ну или немного по русски тут - http://4pda.ru/forum...howtopic=263112

    Цитата:

    Функция USB-модем или USB tethering (в англоязычной терминологии) сейчас реализована стандартно практически на всех устройствах на всех прошивках, т.к. начиная с Android 2.3 это функция является встроенной в сам Андроид

    Стандартно она практически на всех официальных прошивках, а на модифицированных (например, Cianogen) это все вырезано. Поэтому некоторым пользователей приходится ставить похожие программы.

  11. Вот и недостающее звено цепочки! Работа через usb.

    В принципе все то же самое, что из поста #14, только с небольшими изменениями, а именно:

    1. скачать и установить на андроид-устройство программу Wired Tether
    2. запустить программу и нажать на значок usb
    3. идем в параметры адаптера (сетевые подключения на XP) должно появится новое соединение
    4. Идем в настройки этого соединения и меняем его IP и маску на 172.20.23.253 / 255.255.255.252, а остальное делаем пустыми (это ВАЖНО! иначе инет пропадет)

    569ad2b6db89ff1036b44c493912deed.jpg

    Применяем изменения, а дальше все как обычно - запускаем настроенный терминал, а в СЕ, нажав кнопку сеть, в поле Discowered servers будет IP нашего устройства, то есть 172.20.23.254 (если ничего не меняли). И не пугайтесь что он отличен от IP настроенного соединения! Порт так же не меняется.

    При такой настройке все должно работать ^_^

    Приятного взлома!

    • Плюс 1
  12. SnedS91, да у тебя прямо талант, не перестаёшь удивлять.

    Но только Cheat Engine это внешняя программа со сканером памяти и не всегда хочешь включать ПК ради того чтобы включить Cheat Egnine. На этот случай удобнее встроенный сканер памяти GameCIH или аналогичные и CE в большинстве случаев не потребуется (правда встречаются шифрованные последовательности в некоторых играх - специально шифруют, не хотят чтобы их игру быстро прошли)

    Спасибо!

    Согласен, что неудобно, но это стоит того..Можно память просматривать, например.. И было бы гораздо легче, если бы СЕ был в виде приложения на андроиде :)

    Что интересно, приложение/игру нет необходимости сворачивать, в этом плюс, да и заморозка тоже неплохая вещь иногда.

    И еще, к примеру, была одна игра, работающая реалтайм (деньги постоянно увеличивались), то есть нельзя паузу ставить, получилось найти только в СЕ (сначала поиск неизвестного значения, потом увеличилось/уменьшилось)

    Так что интересная штука для исследования..

  13. Нашел более удобный способ подключения к СЕ, теперь adb не нужен! (работать должно на любом телефоне c ARM6 и выше!)

    Что для этого надо:

    1. Android Terminal Emulator (если у кого еще не установлен);
    2. Скрипт cesrv из предыдущих постов или по ссылке (в папке /data в памяти телефона и с правами 777) p.s. я переименовал скрипт для удобства.
    3. Рутованый телефон;
    4. Соединение через wifi роутер (желательно знать ip телефона).

    Сначала идем в терминал, заходим в Настройки -> Команды запуска.

    Дописываем с новой строки:


    su
    ./data/cesrv

    Закрываем терминал, устанавливаем соединение wifi.

    Запускаем снова терминал и должны увидеть приглашение типа:


    &s=0xbeaeeb9c
    main=0x9938
    CEServer. Waiting for client connection
    socket=3
    bind=0
    listen=0
    IdentifierThread active

    Все, телефон настроен, можно свернуть терминал! Запускаем свою игру и переходим к СЕ.

    СЕ нужно повесить на одно физическое ядро процессора (если проц многоядерный), для этого вызываем диспетчер задач, переходим во вкладку процессы, ПКМ по СЕ -> Задать соответсвие...

    Делаем так, чтобы стояла только одна галочка напротив любого из CPU (иначе поиск работать не будет!)

    Далее все как обычно: Выбор процесса -> Сеть

    В Host пишем свой ip, Port оставляем без изменений (52736).

    Если все делали правильно, то должны увидеть список процессов на android.

    Теперь можно спокойно искать значения в памяти!

    На этом все, удачного взлома!

    • Плюс 2
  14. Забыл, еще нужно назначить права скрипту.

    Для этого можно, находясь в директории data, воспользоваться командой


    chmod 777 cesrv

    Кстати, тестировал на Galaxy Ace (arm6) на удивление подключился! Но пока что поиск прерывается так же.. думаю надо поиграться с настройками СЕ..

    Нашел в чем ошибка ^_^

    Поиск наконец заработал!

    Необходимо условие:

    СЕ должен использоваться только одним ядром процессора! (в случае многоядерных компов) то есть надо сделать так, чтобы СЕ висел только на одном ядре (это можно сделать в диспетчере задач, если Win8) либо сторонней прогой, типа CPU-Control..

    если и тогда не будет работать, то в настройках поиска СЕ указать размер буфера 4Кб (но у меня и с 512кб хорошо ищет)

    Вроде все работает, пошел проверять игры..

    Проверил на игре Monster Shooter, работает на ура, деньги взломались с первого поиска! Даже заморозка работает! Жаль отладчик не прикрутить..

    • Плюс 1
  15. Моя попытка подключения СЕ к андроиду.

    Требования:

    • телефон должен быть ARM7! (я тестировал на Galaxy S2)
    • root обязателен!
    • наличие wifi-роутера (т.к. через кабель не получилось пока что)
    • установленные драйвера от телефона

    Качаем архивчик с ADB и распаковываем в удобную папку.

    Ставим на телефон adbWireless из архива.

    Нужно скопировать скрипт cesrv из архива в директорию /data телефона (я использовал Root Explorer)

    На компьютере в зависимости от системы запускаем соответственно:

    cmdXP.exe - (у кого Windows XP)

    cmd7.exe - (у кого Windows 7, с правами администратора)

    На телефоне:

    запускаем adbWireless и нажимаем большую зеленую кнопку. Снизу должны высветиться ip адрес телефона и порт.

    На компьютере:

    в консоли пишем

    adb connect 192.168.0.101:5555

    (вместо 192.168.0.101 ставим свой ip телефона.)

    Должны увидеть надпись


    connected to 192.168.0.101:5555

    Хорошо!

    Пишем далее (последовательно)


    adb shell
    su
    cd data
    ./cesrv

    Должны получить что-то типа:


    &s=0xbeaeeb9c
    main=0x9938
    CEServer. Waiting for client connection
    socket=3
    bind=0
    listen=0
    IdentifierThread active

    С консолью закончили, переходим на компьютер.

    Открываем СЕ, нажимаем кнопку выбора процесса, нажимаем Сеть.

    В поле Host пишем свой IP телефона (у меня 192.168.0.101),

    поле Port оставляем без изменений! (т.е. 52736)

    Жмем Connect и если все правильно сделали получим список процессов на андроиде ^_^

    Это пока что все, к чему я пришел... Если что нибудь получится найти, я опишу способ..

    Удачи!

    • Плюс 2
  16. Dark Byte писал:

    make sure your android device has ROOT. If not, root it, or buy one that has the ability to get root.

    download the beta of ce 6.2 (sign up with the beta tester usergroup)

    extract the ceserver-linux_arm_android to your android device and execute it using the sdk's ADB tool, or using a local terminal app running as root

    you might have to make it executable so a "chmod 777 ceserver-linux_arm_android" from the proper dir might be needed before you can execute it (./ceserver-linux_arm_android )

    autodiscoverport: 3296 (only needed if you do not know the ip of your device, and only works if your device is not in sleepmode)

    used port: 52736 (works even in sleep)

    Then run the ce version in this archive, go to the processlist and click the network button. Connect to your android device and target the process you want to cheat on

    Now you can scan and edit memory (no debugging or other fancy stuff)

  17. На андроиде все утилиты для взлома мало чем отличаются друг от друга, хотя Game killer интересная, умеет немного с памятью работать)) и все равно не хватает СЕ'шных функций =(..

    через adb подключается только через какую-нибудь среду разработки, а вот как напрямую к СЕ - загадка...

    и насколько я знаю adb общается с компьютером посредством разнообразных сообщений-логов..

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.